[project @ 2003-01-22 10:55:56 by ross]
authorross <unknown>
Wed, 22 Jan 2003 10:55:56 +0000 (10:55 +0000)
committerross <unknown>
Wed, 22 Jan 2003 10:55:56 +0000 (10:55 +0000)
add mallocForeignPtrArray and mallocForeignPtrArray0 as per latest FFI draft.

Foreign/ForeignPtr.hs

index 3b37c6d..a1e8550 100644 (file)
@@ -29,6 +29,8 @@ module Foreign.ForeignPtr
 #ifndef __NHC__
        , mallocForeignPtr      --  :: Storable a => IO (ForeignPtr a)
        , mallocForeignPtrBytes --  :: Int -> IO (ForeignPtr a)
+       , mallocForeignPtrArray --  :: Storable a => Int -> IO (ForeignPtr a)
+       , mallocForeignPtrArray0 -- :: Storable a => Int -> IO (ForeignPtr a)
 #endif
         ) 
        where
@@ -228,3 +230,13 @@ castForeignPtr (ForeignPtr a) = ForeignPtr a
 castForeignPtr (MallocPtr  a) = MallocPtr  a
 #endif
 
+#ifndef __NHC__
+mallocForeignPtrArray :: Storable a => Int -> IO (ForeignPtr a)
+mallocForeignPtrArray  = doMalloc undefined
+  where
+    doMalloc            :: Storable a => a -> Int -> IO (ForeignPtr a)
+    doMalloc dummy size  = mallocForeignPtrBytes (size * sizeOf dummy)
+
+mallocForeignPtrArray0      :: Storable a => Int -> IO (ForeignPtr a)
+mallocForeignPtrArray0 size  = mallocForeignPtrArray (size + 1)
+#endif