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  |