Convert-Binary-C
view release on metacpan or search on metacpan
util/memalloc.h view on Meta::CPAN
/**
* Build without support for the Alloc(), CAlloc() and
* ReAlloc() functions. Memory management is completely
* carried out through the use of the fast allocation
* macros AllocF(), CAllocF() and ReAllocF().
*/
#define NO_SLOW_MEMALLOC_CALLS
/**
* Allocate a memory block
*
* Allocates a memory block of \a size bytes. If the files
* were compiled with the #ABORT_IF_NO_MEM preprocessor flag,
* the function aborts if no memory can be allocated.
*
* \param size Size of the memory block in bytes.
*
* \return A pointer to the allocated memory block, or NULL
* if memory couldn't be allocated.
*/
void *Alloc( size_t size );
/**
* Allocate a memory block and initialize to zero
*
* Allocates a memory block to hold \a nobj times
* \a size bytes. If the files were compiled with the
* #ABORT_IF_NO_MEM preprocessor flag, the function
* aborts if no memory can be allocated.
*
* \param nobj Number of objects.
*
* \param size Size of one object in bytes.
*
* \return A pointer to the allocated memory block, or NULL
* if memory couldn't be allocated.
*/
void *CAlloc( size_t nobj, size_t size );
/**
* Reallocate a memory block
*
* Reallocates a memory block of \a size bytes. If the files
* were compiled with the #ABORT_IF_NO_MEM preprocessor flag,
* the function aborts if no memory can be allocated.
*
* \param ptr Pointer to an allocated memory block.
*
* \param size Size of new memory block in bytes.
*
* \return A pointer to the reallocated memory block, or NULL
* if memory couldn't be reallocated.
*/
void *ReAlloc( void *ptr, size_t size );
/**
* Fast Alloc Macro
*
* Allocates a memory block of \a size bytes. If the files
* were compiled with the #ABORT_IF_NO_MEM preprocessor flag,
* the function aborts if no memory can be allocated.
*
* \param cast Pointer cast.
*
* \param ptr Pointer to memory block.
*
* \param size Size of the memory block in bytes.
*/
#define AllocF( cast, ptr, size )
/**
* Fast CAlloc Macro
*
* Allocates a memory block to hold \a nobj times
* \a size bytes. If the files were compiled with the
* #ABORT_IF_NO_MEM preprocessor flag, the function
* aborts if no memory can be allocated.
*
* \param cast Pointer cast.
*
* \param ptr Pointer to memory block.
*
* \param nobj Number of objects.
*
* \param size Size of one object in bytes.
*/
#define CAllocF( cast, ptr, nobj, size )
/**
* Fast ReAlloc Macro
*
* Reallocates a memory block of \a size bytes. If the files
* were compiled with the #ABORT_IF_NO_MEM preprocessor flag,
* the function aborts if no memory can be allocated.
*
* \param cast Pointer cast.
*
* \param ptr Pointer to memory block.
*
* \param size Size of new memory block in bytes.
*/
#define ReAllocF( cast, ptr, size )
/**
* Free a memory block
*
* Frees a memory block that has been previously allocated
* using the Alloc() function.
*
* \param ptr Pointer to a previously allocated
* memory block.
*/
void Free( void *ptr );
/**
* Trace pointer access.
*
* This may prove useful for checking if \a ptr points to
* an existing, previously allocated, not yet freed memory
* block.
*
* \param ptr Pointer to be traced.
*/
void AssertValidPtr( void *ptr );
/**
* Trace memory block access.
*
* Allows checking if a certain memory block lies within
* a previously allocated memory block.
*
* \param ptr Pointer to memory block.
*
* \param size Size of memory block.
*/
void AssertValidBlock( void *ptr, size_t size );
/**
* Configure debugging support.
*
* \param dbfunc Pointer to a printf() like function
* for writing the debug output.
*
* \param dbflags Binary ORed debugging flags. Currently,
* you can request memory allocation tracing
* with \c DB_MEMALLOC_TRACE and pointer
( run in 0.885 second using v1.01-cache-2.11-cpan-39bf76dae61 )