| 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)
 DescriptionMacro: 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 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 |