base-compat-0.8.0: src/Foreign/Marshal/Array/Compat.hs
{-# LANGUAGE CPP, NoImplicitPrelude #-}
module Foreign.Marshal.Array.Compat (
module Base
, callocArray
, callocArray0
) where
import Foreign.Marshal.Array as Base
#if !(MIN_VERSION_base(4,8,0))
import Foreign.Marshal.Alloc.Compat
import Foreign.Ptr (Ptr)
import Foreign.Storable (Storable(..))
import Prelude.Compat
-- |Like 'mallocArray', but allocated memory is filled with bytes of value zero.
--
callocArray :: Storable a => Int -> IO (Ptr a)
callocArray = doCalloc undefined
where
doCalloc :: Storable a' => a' -> Int -> IO (Ptr a')
doCalloc dummy size = callocBytes (size * sizeOf dummy)
-- |Like 'callocArray0', but allocated memory is filled with bytes of value
-- zero.
--
callocArray0 :: Storable a => Int -> IO (Ptr a)
callocArray0 size = callocArray (size + 1)
#endif