-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Memory allocation with added stress tests and integrity checks
--
-- Provide adaptions of mallocForeignPtrArray and
-- allocaArray that add stress tests and integrity checks.
--
-- There are three modules:
--
--
-- - Guarded.Plain: exports the original allocation
-- routines
-- - Guarded.Debug: exports allocation routines that add
-- stress and checks
-- - Guarded: exports either Guarded.Plain or
-- Guarded.Debug depending on the Cabal debug
-- flag.
--
--
-- It is intended that you always import the Guarded module in
-- user code and install a package version with enabled debug flag to a
-- custom package database for debugging. If you compile your user
-- program you can choose production or debugging mode by choosing the
-- default or the custom debugging package database, respectively.
--
-- This package is inspired by the famous Amiga debug tool MungWall. The
-- Linux counterpart is Electric Fence.
@package guarded-allocation
@version 0.0
module Foreign.Marshal.Array.Guarded.Plain
create :: (Storable a) => Int -> (Ptr a -> IO b) -> IO (ForeignPtr a, b)
alloca :: (Storable a) => Int -> (Ptr a -> IO b) -> IO b
module Foreign.Marshal.Array.Guarded.Debug
-- | Array creation with additional immutability check, electrical fence
-- and pollution of uncleaned memory.
--
-- The function checks that the array is not altered anymore after
-- creation.
create :: (Storable a) => Int -> (Ptr a -> IO b) -> IO (ForeignPtr a, b)
alloca :: (Storable a) => Int -> (Ptr a -> IO b) -> IO b
module Foreign.Marshal.Array.Guarded
create :: (Storable a) => Int -> (Ptr a -> IO b) -> IO (ForeignPtr a, b)
alloca :: (Storable a) => Int -> (Ptr a -> IO b) -> IO b