Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
Made with Libxml2 Logo

Module xmlmemory from libxml2

API Menu
API Indexes
Related links

Table of Contents

void *	xmlMemRealloc	(void * ptr, 
size_t size)
void *	xmlReallocLoc	(void * ptr, 
size_t size,
const char * file,
int line)
int	xmlGcMemGet	(xmlFreeFunc * freeFunc, 
xmlMallocFunc * mallocFunc,
xmlMallocFunc * mallocAtomicFunc,
xmlReallocFunc * reallocFunc,
xmlStrdupFunc * strdupFunc)
Function 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.

Function type: xmlFreeFunc
void	xmlFreeFunc	(void * mem)

Signature for a free() implementation.

mem:an already allocated block of memory

int	xmlInitMemory	(void)
Variable xmlStrdupFunc xmlMemStrdup

Variable xmlReallocFunc xmlRealloc

void	xmlMemFree	(void * ptr)
int	xmlMemGet	(xmlFreeFunc * freeFunc, 
xmlMallocFunc * mallocFunc,
xmlReallocFunc * reallocFunc,
xmlStrdupFunc * strdupFunc)
void *	xmlMallocAtomicLoc	(size_t size, 
const char * file,
int line)
void *	xmlMemMalloc	(size_t size)
void	xmlMemDisplay	(FILE * fp)
int	xmlMemUsed	(void)
int	xmlMemSetup	(xmlFreeFunc freeFunc, 
xmlMallocFunc mallocFunc,
xmlReallocFunc reallocFunc,
xmlStrdupFunc strdupFunc)
Variable xmlMallocFunc xmlMallocAtomic

void	xmlMemoryDump	(void)
void *	xmlMallocLoc	(size_t size, 
const char * file,
int line)
void	xmlMemShow	(FILE * fp, 
int nr)
Function 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.

Variable xmlMallocFunc xmlMalloc

Function 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.

#define DEBUG_MEMORY

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

Function: xmlMemRealloc

void *	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: xmlReallocLoc

void *	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: 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
Signature for an strdup() implementation. Signature for a free() implementation.

Function: xmlInitMemory

int	xmlInitMemory	(void)

Initialize the memory layer.

Returns:0 on success

Function: xmlMemFree

void	xmlMemFree	(void * ptr)

a free() equivalent, with error checking.

ptr:the memory block pointer

Function: 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

Function: xmlMallocAtomicLoc

void *	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: xmlMemMalloc

void *	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: xmlMemDisplay

void	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: xmlMemUsed

int	xmlMemUsed	(void)

Provides the amount of memory currently allocated

Returns:an int representing the amount of memory allocated.

Function: 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

Function: xmlMemoryDump

void	xmlMemoryDump	(void)

Dump in-extenso the memory blocks allocated to the file .memorylist

Function: xmlMallocLoc

void *	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: xmlMemShow

void	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
Signature for a realloc() implementation. Signature for a malloc() implementation.

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

Function: xmlMemoryStrdup

char *	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: xmlMemStrdupLoc

char *	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.

Daniel Veillard