/* * Summary: interface for the memory allocator * Description: provides interfaces for the memory allocator, * including debugging capabilities. * * Copy: See Copyright for the status of this software. * * Author: Daniel Veillard */ #ifndef __DEBUG_MEMORY_ALLOC__ #define __DEBUG_MEMORY_ALLOC__ #include <stdio.h> #include <libxml/xmlversion.h> #ifdef __cplusplus extern "C" { #endif /* * The XML memory wrapper support 4 basic overloadable functions. */ /** * xmlFreeFunc: * @mem: an already allocated block of memory * * Signature for a free() implementation. */ typedef void (*xmlFreeFunc)(void *mem); /** * xmlMallocFunc: * @size: the size requested in bytes * * Signature for a malloc() implementation. * * Returns a pointer to the newly allocated block or NULL in case of error. */ typedef void *(LIBXML_ATTR_ALLOC_SIZE(1) *xmlMallocFunc)(size_t size); /** * xmlReallocFunc: * @mem: an already allocated block of memory * @size: the new size requested in bytes * * Signature for a realloc() implementation. * * Returns a pointer to the newly reallocated block or NULL in case of error. */ typedef void *(*xmlReallocFunc)(void *mem, size_t size); /** * xmlStrdupFunc: * @str: a zero terminated string * * Signature for an strdup() implementation. * * Returns the copy of the string or NULL in case of error. */ typedef char *(*xmlStrdupFunc)(const char *str); /* * In general the memory allocation entry points are not kept * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED * - xmlMalloc * - xmlMallocAtomic * - xmlRealloc * - xmlMemStrdup * - xmlFree */ /** DOC_DISABLE */ #ifdef LIBXML_THREAD_ALLOC_ENABLED #define XML_GLOBALS_ALLOC \ XML_OP(xmlMalloc, xmlMallocFunc, XML_NO_ATTR) \ XML_OP(xmlMallocAtomic, xmlMallocFunc, XML_NO_ATTR) \ XML_OP(xmlRealloc, xmlReallocFunc, XML_NO_ATTR) \ XML_OP(xmlFree, xmlFreeFunc, XML_NO_ATTR) \ XML_OP(xmlMemStrdup, xmlStrdupFunc, XML_NO_ATTR) #define XML_OP XML_DECLARE_GLOBAL XML_GLOBALS_ALLOC #undef XML_OP #if defined(LIBXML_THREAD_ENABLED) && !defined(XML_GLOBALS_NO_REDEFINITION) #define xmlMalloc XML_GLOBAL_MACRO(xmlMalloc) #define xmlMallocAtomic XML_GLOBAL_MACRO(xmlMallocAtomic) #define xmlRealloc XML_GLOBAL_MACRO(xmlRealloc) #define xmlFree XML_GLOBAL_MACRO(xmlFree) #define xmlMemStrdup XML_GLOBAL_MACRO(xmlMemStrdup) #endif #else #define XML_GLOBALS_ALLOC /** DOC_ENABLE */ XMLPUBVAR xmlMallocFunc xmlMalloc; XMLPUBVAR xmlMallocFunc xmlMallocAtomic; XMLPUBVAR xmlReallocFunc xmlRealloc; XMLPUBVAR xmlFreeFunc xmlFree; XMLPUBVAR xmlStrdupFunc xmlMemStrdup; #endif /* * The way to overload the existing functions. * The xmlGc function have an extra entry for atomic block * allocations useful for garbage collected memory allocators */ XMLPUBFUN int xmlMemSetup (xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc, xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc); XMLPUBFUN int xmlMemGet (xmlFreeFunc *freeFunc, xmlMallocFunc *mallocFunc, xmlReallocFunc *reallocFunc, xmlStrdupFunc *strdupFunc); XMLPUBFUN int xmlGcMemSetup (xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc, xmlMallocFunc mallocAtomicFunc, xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc); XMLPUBFUN int xmlGcMemGet (xmlFreeFunc *freeFunc, xmlMallocFunc *mallocFunc, xmlMallocFunc *mallocAtomicFunc, xmlReallocFunc *reallocFunc, xmlStrdupFunc *strdupFunc); /* * Initialization of the memory layer. */ XML_DEPRECATED XMLPUBFUN int xmlInitMemory (void); /* * Cleanup of the memory layer. */ XML_DEPRECATED XMLPUBFUN void xmlCleanupMemory (void); /* * These are specific to the XML debug memory wrapper. */ XMLPUBFUN size_t xmlMemSize (void *ptr); XMLPUBFUN int xmlMemUsed (void); XMLPUBFUN int xmlMemBlocks (void); XML_DEPRECATED XMLPUBFUN void xmlMemDisplay (FILE *fp); XML_DEPRECATED XMLPUBFUN void xmlMemDisplayLast(FILE *fp, long nbBytes); XML_DEPRECATED XMLPUBFUN void xmlMemShow (FILE *fp, int nr); XML_DEPRECATED XMLPUBFUN void xmlMemoryDump (void); XMLPUBFUN void * xmlMemMalloc (size_t size) LIBXML_ATTR_ALLOC_SIZE(1); XMLPUBFUN void * xmlMemRealloc (void *ptr,size_t size); XMLPUBFUN void xmlMemFree (void *ptr); XMLPUBFUN char * xmlMemoryStrdup (const char *str); XML_DEPRECATED XMLPUBFUN void * xmlMallocLoc (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1); XML_DEPRECATED XMLPUBFUN void * xmlReallocLoc (void *ptr, size_t size, const char *file, int line); XML_DEPRECATED XMLPUBFUN void * xmlMallocAtomicLoc (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1); XML_DEPRECATED XMLPUBFUN char * xmlMemStrdupLoc (const char *str, const char *file, int line); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __DEBUG_MEMORY_ALLOC__ */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
HTMLparser.h | File | 9.62 KB | 0644 |
|
HTMLtree.h | File | 3.42 KB | 0644 |
|
SAX.h | File | 4.31 KB | 0644 |
|
SAX2.h | File | 4.33 KB | 0644 |
|
c14n.h | File | 2.68 KB | 0644 |
|
catalog.h | File | 4.51 KB | 0644 |
|
chvalid.h | File | 4.97 KB | 0644 |
|
debugXML.h | File | 4.82 KB | 0644 |
|
dict.h | File | 1.73 KB | 0644 |
|
encoding.h | File | 8.17 KB | 0644 |
|
entities.h | File | 4.79 KB | 0644 |
|
globals.h | File | 890 B | 0644 |
|
hash.h | File | 6.85 KB | 0644 |
|
list.h | File | 3.05 KB | 0644 |
|
nanoftp.h | File | 3.92 KB | 0644 |
|
nanohttp.h | File | 2.07 KB | 0644 |
|
parser.h | File | 43.12 KB | 0644 |
|
parserInternals.h | File | 16.42 KB | 0644 |
|
pattern.h | File | 2.58 KB | 0644 |
|
relaxng.h | File | 5.69 KB | 0644 |
|
schemasInternals.h | File | 25.62 KB | 0644 |
|
schematron.h | File | 4.16 KB | 0644 |
|
threads.h | File | 1.69 KB | 0644 |
|
tree.h | File | 37.96 KB | 0644 |
|
uri.h | File | 2.79 KB | 0644 |
|
valid.h | File | 12.99 KB | 0644 |
|
xinclude.h | File | 3.04 KB | 0644 |
|
xlink.h | File | 4.88 KB | 0644 |
|
xmlIO.h | File | 12.16 KB | 0644 |
|
xmlautomata.h | File | 3.7 KB | 0644 |
|
xmlerror.h | File | 36.82 KB | 0644 |
|
xmlexports.h | File | 3.2 KB | 0644 |
|
xmlmemory.h | File | 4.79 KB | 0644 |
|
xmlmodule.h | File | 1.11 KB | 0644 |
|
xmlreader.h | File | 11.92 KB | 0644 |
|
xmlregexp.h | File | 5.03 KB | 0644 |
|
xmlsave.h | File | 2.51 KB | 0644 |
|
xmlschemas.h | File | 6.74 KB | 0644 |
|
xmlschemastypes.h | File | 4.48 KB | 0644 |
|
xmlstring.h | File | 5.15 KB | 0644 |
|
xmlunicode.h | File | 10.86 KB | 0644 |
|
xmlversion.h | File | 5.27 KB | 0644 |
|
xmlwriter.h | File | 20.2 KB | 0644 |
|
xpath.h | File | 16.19 KB | 0644 |
|
xpathInternals.h | File | 17.99 KB | 0644 |
|
xpointer.h | File | 3.56 KB | 0644 |
|