on master help sign in
Merge pull request #3111 from colin-adams/calloc

added calloc to CFFI.Memory

commit3398f1cc63dd7e4123a096bcf33c657d584f525a authorNiklas Larsson <metaniklas@gmail.com> dateWed 13 Apr 2016, 01:45 (11 years ago) parentc586b738133d8b
1 file changed+5−1
libs/contrib/CFFI/Memory.idr+5−1
libs/contrib/CFFI/Memory.idr+5−1
@@ -19,6 +19,10 @@ implicit toPtr : CPtr -> Ptr
1919toPtr (CPt p 0) = p
2020toPtr (CPt p o) = prim__ptrOffset p o
2121
22+||| Import of calloc from the C standard library.
23+calloc : Int -> Int -> IO Ptr
24+calloc nmemb size = foreign FFI_C "calloc" (Int -> Int -> IO Ptr) nmemb size
25+
2226||| Import of malloc from the C standard library.
2327malloc : Int -> IO Ptr
2428malloc size = foreign FFI_C "malloc" (Int -> IO Ptr) size
@@ -29,7 +33,7 @@ mfree ptr = foreign FFI_C "free" (Ptr -> IO ()) ptr
2933
3034||| Allocate enough memory to hold an instance of a C typr
3135alloc : Composite -> IO CPtr
32−alloc t = return $ CPt !(malloc (sizeOf t)) 0
36+alloc t = return $ CPt !(calloc 1 (sizeOf t)) 0
3337
3438||| Free memory allocated with alloc
3539free : CPtr -> IO ()