xmlmemory

xmlmemory - interface for the memory allocator

provides interfaces for the memory allocator, including debugging capabilities.

Author(s): Daniel Veillard

Synopsis

#define xmlRealloc;
#define xmlMalloc;
#define xmlMallocAtomic;
#define DEBUG_MEMORY;
#define xmlMemStrdup;
void *	xmlMemRealloc			(void * ptr, 
size_t size); int xmlInitMemory (void); void xmlMemFree (void * ptr); void * xmlMemMalloc (size_t size); void xmlMemDisplayLast (FILE * fp,
long nbBytes); int xmlMemGet (xmlFreeFunc * freeFunc,
xmlMallocFunc * mallocFunc,
xmlReallocFunc * reallocFunc,
xmlStrdupFunc * strdupFunc); void xmlMemoryDump (void); void * xmlMallocLoc (size_t size,
const char * file,
int line); void xmlMemDisplay (FILE * fp); int xmlMemBlocks (void); int xmlGcMemGet (xmlFreeFunc * freeFunc,
xmlMallocFunc * mallocFunc,
xmlMallocFunc * mallocAtomicFunc,
xmlReallocFunc * reallocFunc,
xmlStrdupFunc * strdupFunc); typedef char * xmlStrdupFunc (const char * str); typedef void xmlFreeFunc (void * mem); void xmlMemShow (FILE * fp,
int nr); void * xmlMallocAtomicLoc (size_t size,
const char * file,
int line); void * xmlReallocLoc (void * ptr,
size_t size,
const char * file,
int line); void xmlCleanupMemory (void); int xmlMemUsed (void); int xmlMemSetup (xmlFreeFunc freeFunc,
xmlMallocFunc mallocFunc,
xmlReallocFunc reallocFunc,
xmlStrdupFunc strdupFunc); typedef void * xmlReallocFunc (void * mem,
size_t size); typedef void * xmlMallocFunc (size_t size); int xmlGcMemSetup (xmlFreeFunc freeFunc,
xmlMallocFunc mallocFunc,
xmlMallocFunc mallocAtomicFunc,
xmlReallocFunc reallocFunc,
xmlStrdupFunc strdupFunc); char * xmlMemoryStrdup (const char * str); char * xmlMemStrdupLoc (const char * str,
const char * file,
int line);

Description

Details

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






xmlCleanupMemory ()

void	xmlCleanupMemory		(void)

DEPRECATED: This function will be made private. Call xmlCleanupParser to free global state but see the warnings there. xmlCleanupParser should be only called once at program exit. In most cases, you don't have call cleanup functions at all. Free up all the memory allocated by the library for its own use. This should not be called by user level code.


xmlGcMemGet ()

int	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

xmlGcMemSetup ()

int	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

xmlInitMemory ()

int	xmlInitMemory			(void)

DEPRECATED: This function will be made private. Call xmlInitParser to initialize the library. Initialize the memory layer.

Returns:0 on success







xmlMemGet ()

int	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



xmlMemSetup ()

int	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