provides interfaces for the memory allocator, including debugging capabilities. Table of Contents#define DEBUG_MEMORY Variable xmlMallocFunc xmlMalloc
Variable xmlMallocFunc xmlMallocAtomic
Variable xmlStrdupFunc xmlMemStrdup
Variable xmlReallocFunc xmlRealloc
void xmlCleanupMemory (void)
Function type: xmlFreeFunc
void xmlFreeFunc (void * mem)
int xmlGcMemGet (xmlFreeFunc * freeFunc, xmlMallocFunc * mallocFunc, xmlMallocFunc * mallocAtomicFunc, xmlReallocFunc * reallocFunc, xmlStrdupFunc * strdupFunc)
int xmlGcMemSetup (xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc, xmlMallocFunc mallocAtomicFunc, xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc)
int xmlInitMemory (void)
void * xmlMallocAtomicLoc (size_t size, const char * file, int line)
Function type: xmlMallocFunc
void * xmlMallocFunc (size_t size)
void * xmlMallocLoc (size_t size, const char * file, int line)
int xmlMemBlocks (void)
void xmlMemDisplay (FILE * fp)
void xmlMemDisplayLast (FILE * fp, long nbBytes)
void xmlMemFree (void * ptr)
int xmlMemGet (xmlFreeFunc * freeFunc, xmlMallocFunc * mallocFunc, xmlReallocFunc * reallocFunc, xmlStrdupFunc * strdupFunc)
void * xmlMemMalloc (size_t size)
void * xmlMemRealloc (void * ptr, size_t size)
int xmlMemSetup (xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc, xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc)
void xmlMemShow (FILE * fp, int nr)
char * xmlMemStrdupLoc (const char * str, const char * file, int line)
int xmlMemUsed (void)
void xmlMemoryDump (void)
char * xmlMemoryStrdup (const char * str)
Function type: xmlReallocFunc
void * xmlReallocFunc (void * mem, size_t size)
void * xmlReallocLoc (void * ptr, size_t size, const char * file, int line)
Function type: xmlStrdupFunc
char * xmlStrdupFunc (const char * str)
Description
Macro: DEBUG_MEMORY#define DEBUG_MEMORY DEBUG_MEMORY replaces the allocator with a collect and debug shell to the libc allocator. DEBUG_MEMORY should only be activated when debugging libxml i.e. if libxml has been configured with --with-debug-mem too. #define DEBUG_MEMORY_FREED #define DEBUG_MEMORY_LOCATION
Function: xmlCleanupMemoryvoid xmlCleanupMemory (void)
Free up all the memory allocated by the library for its own use. This should not be called by user level code.
Function type: xmlFreeFuncFunction type: xmlFreeFunc
void xmlFreeFunc (void * mem)
Signature for a free() implementation. mem: | an already allocated block of memory |
Function: xmlGcMemGetint xmlGcMemGet (xmlFreeFunc * freeFunc, xmlMallocFunc * mallocFunc, xmlMallocFunc * mallocAtomicFunc, xmlReallocFunc * reallocFunc, xmlStrdupFunc * strdupFunc)
Provides the memory access functions set currently in use The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators
freeFunc: | place to save the free() function in use | mallocFunc: | place to save the malloc() function in use | mallocAtomicFunc: | place to save the atomic malloc() function in use | reallocFunc: | place to save the realloc() function in use | strdupFunc: | place to save the strdup() function in use | Returns: | 0 on success |
Function: xmlGcMemSetupint xmlGcMemSetup (xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc, xmlMallocFunc mallocAtomicFunc, xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc)
Override the default memory access functions with a new set This has to be called before any other libxml routines ! The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas useful for garbage collected memory allocators Should this be blocked if there was already some allocations done ?
freeFunc: | the free() function to use | mallocFunc: | the malloc() function to use | mallocAtomicFunc: | the malloc() function to use for atomic allocations | reallocFunc: | the realloc() function to use | strdupFunc: | the strdup() function to use | Returns: | 0 on success |
Function: xmlInitMemoryint xmlInitMemory (void)
Initialize the memory layer.
Function: xmlMallocAtomicLocvoid * xmlMallocAtomicLoc (size_t size, const char * file, int line)
a malloc() equivalent, with logging of the allocation info.
size: | an unsigned int specifying the size in byte to allocate. | file: | the file name or NULL | line: | the line number | Returns: | a pointer to the allocated area or NULL in case of lack of memory. |
Function type: xmlMallocFuncFunction type: xmlMallocFunc
void * xmlMallocFunc (size_t size)
Signature for a malloc() implementation. size: | the size requested in bytes | Returns: | a pointer to the newly allocated block or NULL in case of error. |
Function: xmlMallocLocvoid * xmlMallocLoc (size_t size, const char * file, int line)
a malloc() equivalent, with logging of the allocation info.
size: | an int specifying the size in byte to allocate. | file: | the file name or NULL | line: | the line number | Returns: | a pointer to the allocated area or NULL in case of lack of memory. |
Function: xmlMemBlocksint xmlMemBlocks (void)
Provides the number of memory areas currently allocated
Returns: | an int representing the number of blocks |
Function: xmlMemDisplayvoid xmlMemDisplay (FILE * fp)
show in-extenso the memory blocks allocated
fp: | a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist |
Function: xmlMemDisplayLastvoid xmlMemDisplayLast (FILE * fp, long nbBytes)
the last nbBytes of memory allocated and not freed, useful for dumping the memory left allocated between two places at runtime.
fp: | a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist | nbBytes: | the amount of memory to dump |
Function: xmlMemFreevoid xmlMemFree (void * ptr)
a free() equivalent, with error checking.
ptr: | the memory block pointer |
Function: xmlMemGetint xmlMemGet (xmlFreeFunc * freeFunc, xmlMallocFunc * mallocFunc, xmlReallocFunc * reallocFunc, xmlStrdupFunc * strdupFunc)
Provides the memory access functions set currently in use
freeFunc: | place to save the free() function in use | mallocFunc: | place to save the malloc() function in use | reallocFunc: | place to save the realloc() function in use | strdupFunc: | place to save the strdup() function in use | Returns: | 0 on success |
Function: xmlMemMallocvoid * xmlMemMalloc (size_t size)
a malloc() equivalent, with logging of the allocation info.
size: | an int specifying the size in byte to allocate. | Returns: | a pointer to the allocated area or NULL in case of lack of memory. |
Function: xmlMemReallocvoid * xmlMemRealloc (void * ptr, size_t size)
a realloc() equivalent, with logging of the allocation info.
ptr: | the initial memory block pointer | size: | an int specifying the size in byte to allocate. | Returns: | a pointer to the allocated area or NULL in case of lack of memory. |
Function: xmlMemSetupint xmlMemSetup (xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc, xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc)
Override the default memory access functions with a new set This has to be called before any other libxml routines ! Should this be blocked if there was already some allocations done ?
freeFunc: | the free() function to use | mallocFunc: | the malloc() function to use | reallocFunc: | the realloc() function to use | strdupFunc: | the strdup() function to use | Returns: | 0 on success |
Function: xmlMemShowvoid xmlMemShow (FILE * fp, int nr)
show a show display of the memory allocated, and dump the @nr last allocated areas which were not freed
fp: | a FILE descriptor used as the output file | nr: | number of entries to dump |
Function: xmlMemStrdupLocchar * xmlMemStrdupLoc (const char * str, const char * file, int line)
a strdup() equivalent, with logging of the allocation info.
str: | the initial string pointer | file: | the file name or NULL | line: | the line number | Returns: | a pointer to the new string or NULL if allocation error occurred. |
Function: xmlMemUsedint xmlMemUsed (void)
Provides the amount of memory currently allocated
Returns: | an int representing the amount of memory allocated. |
Function: xmlMemoryDumpvoid xmlMemoryDump (void)
Dump in-extenso the memory blocks allocated to the file .memorylist
Function: xmlMemoryStrdupchar * xmlMemoryStrdup (const char * str)
a strdup() equivalent, with logging of the allocation info.
str: | the initial string pointer | Returns: | a pointer to the new string or NULL if allocation error occurred. |
Function type: xmlReallocFuncFunction type: xmlReallocFunc
void * xmlReallocFunc (void * mem, size_t size)
Signature for a realloc() implementation. mem: | an already allocated block of memory | size: | the new size requested in bytes | Returns: | a pointer to the newly reallocated block or NULL in case of error. |
Function: xmlReallocLocvoid * xmlReallocLoc (void * ptr, size_t size, const char * file, int line)
a realloc() equivalent, with logging of the allocation info.
ptr: | the initial memory block pointer | size: | an int specifying the size in byte to allocate. | file: | the file name or NULL | line: | the line number | Returns: | a pointer to the allocated area or NULL in case of lack of memory. |
Function type: xmlStrdupFuncFunction type: xmlStrdupFunc
char * xmlStrdupFunc (const char * str)
Signature for an strdup() implementation. str: | a zero terminated string | Returns: | the copy of the string or NULL in case of error. |
Daniel Veillard |