File indexing completed on 2025-10-30 08:45:12
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 #ifndef __DEBUG_MEMORY_ALLOC__
0013 #define __DEBUG_MEMORY_ALLOC__
0014 
0015 #include <stdio.h>
0016 #include <libxml/xmlversion.h>
0017 
0018 #ifdef __cplusplus
0019 extern "C" {
0020 #endif
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 
0030 
0031 typedef void (*xmlFreeFunc)(void *mem);
0032 
0033 
0034 
0035 
0036 
0037 
0038 
0039 
0040 typedef void *(LIBXML_ATTR_ALLOC_SIZE(1) *xmlMallocFunc)(size_t size);
0041 
0042 
0043 
0044 
0045 
0046 
0047 
0048 
0049 
0050 
0051 typedef void *(*xmlReallocFunc)(void *mem, size_t size);
0052 
0053 
0054 
0055 
0056 
0057 
0058 
0059 
0060 
0061 typedef char *(*xmlStrdupFunc)(const char *str);
0062 
0063 
0064 
0065 
0066 
0067 
0068 
0069 
0070 
0071 
0072 
0073 #ifdef LIBXML_THREAD_ALLOC_ENABLED
0074   #define XML_GLOBALS_ALLOC \
0075     XML_OP(xmlMalloc, xmlMallocFunc, XML_NO_ATTR) \
0076     XML_OP(xmlMallocAtomic, xmlMallocFunc, XML_NO_ATTR) \
0077     XML_OP(xmlRealloc, xmlReallocFunc, XML_NO_ATTR) \
0078     XML_OP(xmlFree, xmlFreeFunc, XML_NO_ATTR) \
0079     XML_OP(xmlMemStrdup, xmlStrdupFunc, XML_NO_ATTR)
0080   #define XML_OP XML_DECLARE_GLOBAL
0081     XML_GLOBALS_ALLOC
0082   #undef XML_OP
0083   #if defined(LIBXML_THREAD_ENABLED) && !defined(XML_GLOBALS_NO_REDEFINITION)
0084     #define xmlMalloc XML_GLOBAL_MACRO(xmlMalloc)
0085     #define xmlMallocAtomic XML_GLOBAL_MACRO(xmlMallocAtomic)
0086     #define xmlRealloc XML_GLOBAL_MACRO(xmlRealloc)
0087     #define xmlFree XML_GLOBAL_MACRO(xmlFree)
0088     #define xmlMemStrdup XML_GLOBAL_MACRO(xmlMemStrdup)
0089   #endif
0090 #else
0091   #define XML_GLOBALS_ALLOC
0092 
0093   XMLPUBVAR xmlMallocFunc xmlMalloc;
0094   XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
0095   XMLPUBVAR xmlReallocFunc xmlRealloc;
0096   XMLPUBVAR xmlFreeFunc xmlFree;
0097   XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
0098 #endif
0099 
0100 
0101 
0102 
0103 
0104 
0105 XMLPUBFUN int
0106     xmlMemSetup (xmlFreeFunc freeFunc,
0107              xmlMallocFunc mallocFunc,
0108              xmlReallocFunc reallocFunc,
0109              xmlStrdupFunc strdupFunc);
0110 XMLPUBFUN int
0111     xmlMemGet   (xmlFreeFunc *freeFunc,
0112              xmlMallocFunc *mallocFunc,
0113              xmlReallocFunc *reallocFunc,
0114              xmlStrdupFunc *strdupFunc);
0115 XMLPUBFUN int
0116     xmlGcMemSetup   (xmlFreeFunc freeFunc,
0117              xmlMallocFunc mallocFunc,
0118              xmlMallocFunc mallocAtomicFunc,
0119              xmlReallocFunc reallocFunc,
0120              xmlStrdupFunc strdupFunc);
0121 XMLPUBFUN int
0122     xmlGcMemGet (xmlFreeFunc *freeFunc,
0123              xmlMallocFunc *mallocFunc,
0124              xmlMallocFunc *mallocAtomicFunc,
0125              xmlReallocFunc *reallocFunc,
0126              xmlStrdupFunc *strdupFunc);
0127 
0128 
0129 
0130 
0131 XML_DEPRECATED
0132 XMLPUBFUN int
0133     xmlInitMemory   (void);
0134 
0135 
0136 
0137 
0138 XML_DEPRECATED
0139 XMLPUBFUN void
0140                 xmlCleanupMemory        (void);
0141 
0142 
0143 
0144 XMLPUBFUN size_t
0145     xmlMemSize  (void *ptr);
0146 XMLPUBFUN int
0147     xmlMemUsed  (void);
0148 XMLPUBFUN int
0149     xmlMemBlocks    (void);
0150 XML_DEPRECATED
0151 XMLPUBFUN void
0152     xmlMemDisplay   (FILE *fp);
0153 XML_DEPRECATED
0154 XMLPUBFUN void
0155     xmlMemDisplayLast(FILE *fp, long nbBytes);
0156 XML_DEPRECATED
0157 XMLPUBFUN void
0158     xmlMemShow  (FILE *fp, int nr);
0159 XML_DEPRECATED
0160 XMLPUBFUN void
0161     xmlMemoryDump   (void);
0162 XMLPUBFUN void *
0163     xmlMemMalloc    (size_t size) LIBXML_ATTR_ALLOC_SIZE(1);
0164 XMLPUBFUN void *
0165     xmlMemRealloc   (void *ptr,size_t size);
0166 XMLPUBFUN void
0167     xmlMemFree  (void *ptr);
0168 XMLPUBFUN char *
0169     xmlMemoryStrdup (const char *str);
0170 XML_DEPRECATED
0171 XMLPUBFUN void *
0172     xmlMallocLoc    (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1);
0173 XML_DEPRECATED
0174 XMLPUBFUN void *
0175     xmlReallocLoc   (void *ptr, size_t size, const char *file, int line);
0176 XML_DEPRECATED
0177 XMLPUBFUN void *
0178     xmlMallocAtomicLoc (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1);
0179 XML_DEPRECATED
0180 XMLPUBFUN char *
0181     xmlMemStrdupLoc (const char *str, const char *file, int line);
0182 
0183 #ifdef __cplusplus
0184 }
0185 #endif 
0186 
0187 #endif  
0188