Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/lxml/includes/libxml/xmlmemory.h @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
| author | guerler |
|---|---|
| date | Fri, 31 Jul 2020 00:32:28 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:d30785e31577 | 1:56ad4e20f292 |
|---|---|
| 1 /* | |
| 2 * Summary: interface for the memory allocator | |
| 3 * Description: provides interfaces for the memory allocator, | |
| 4 * including debugging capabilities. | |
| 5 * | |
| 6 * Copy: See Copyright for the status of this software. | |
| 7 * | |
| 8 * Author: Daniel Veillard | |
| 9 */ | |
| 10 | |
| 11 | |
| 12 #ifndef __DEBUG_MEMORY_ALLOC__ | |
| 13 #define __DEBUG_MEMORY_ALLOC__ | |
| 14 | |
| 15 #include <stdio.h> | |
| 16 #include <libxml/xmlversion.h> | |
| 17 | |
| 18 /** | |
| 19 * DEBUG_MEMORY: | |
| 20 * | |
| 21 * DEBUG_MEMORY replaces the allocator with a collect and debug | |
| 22 * shell to the libc allocator. | |
| 23 * DEBUG_MEMORY should only be activated when debugging | |
| 24 * libxml i.e. if libxml has been configured with --with-debug-mem too. | |
| 25 */ | |
| 26 /* #define DEBUG_MEMORY_FREED */ | |
| 27 /* #define DEBUG_MEMORY_LOCATION */ | |
| 28 | |
| 29 #ifdef DEBUG | |
| 30 #ifndef DEBUG_MEMORY | |
| 31 #define DEBUG_MEMORY | |
| 32 #endif | |
| 33 #endif | |
| 34 | |
| 35 /** | |
| 36 * DEBUG_MEMORY_LOCATION: | |
| 37 * | |
| 38 * DEBUG_MEMORY_LOCATION should be activated only when debugging | |
| 39 * libxml i.e. if libxml has been configured with --with-debug-mem too. | |
| 40 */ | |
| 41 #ifdef DEBUG_MEMORY_LOCATION | |
| 42 #endif | |
| 43 | |
| 44 #ifdef __cplusplus | |
| 45 extern "C" { | |
| 46 #endif | |
| 47 | |
| 48 /* | |
| 49 * The XML memory wrapper support 4 basic overloadable functions. | |
| 50 */ | |
| 51 /** | |
| 52 * xmlFreeFunc: | |
| 53 * @mem: an already allocated block of memory | |
| 54 * | |
| 55 * Signature for a free() implementation. | |
| 56 */ | |
| 57 typedef void (XMLCALL *xmlFreeFunc)(void *mem); | |
| 58 /** | |
| 59 * xmlMallocFunc: | |
| 60 * @size: the size requested in bytes | |
| 61 * | |
| 62 * Signature for a malloc() implementation. | |
| 63 * | |
| 64 * Returns a pointer to the newly allocated block or NULL in case of error. | |
| 65 */ | |
| 66 typedef void *(LIBXML_ATTR_ALLOC_SIZE(1) XMLCALL *xmlMallocFunc)(size_t size); | |
| 67 | |
| 68 /** | |
| 69 * xmlReallocFunc: | |
| 70 * @mem: an already allocated block of memory | |
| 71 * @size: the new size requested in bytes | |
| 72 * | |
| 73 * Signature for a realloc() implementation. | |
| 74 * | |
| 75 * Returns a pointer to the newly reallocated block or NULL in case of error. | |
| 76 */ | |
| 77 typedef void *(XMLCALL *xmlReallocFunc)(void *mem, size_t size); | |
| 78 | |
| 79 /** | |
| 80 * xmlStrdupFunc: | |
| 81 * @str: a zero terminated string | |
| 82 * | |
| 83 * Signature for an strdup() implementation. | |
| 84 * | |
| 85 * Returns the copy of the string or NULL in case of error. | |
| 86 */ | |
| 87 typedef char *(XMLCALL *xmlStrdupFunc)(const char *str); | |
| 88 | |
| 89 /* | |
| 90 * The 4 interfaces used for all memory handling within libxml. | |
| 91 LIBXML_DLL_IMPORT xmlFreeFunc xmlFree; | |
| 92 LIBXML_DLL_IMPORT xmlMallocFunc xmlMalloc; | |
| 93 LIBXML_DLL_IMPORT xmlMallocFunc xmlMallocAtomic; | |
| 94 LIBXML_DLL_IMPORT xmlReallocFunc xmlRealloc; | |
| 95 LIBXML_DLL_IMPORT xmlStrdupFunc xmlMemStrdup; | |
| 96 */ | |
| 97 | |
| 98 /* | |
| 99 * The way to overload the existing functions. | |
| 100 * The xmlGc function have an extra entry for atomic block | |
| 101 * allocations useful for garbage collected memory allocators | |
| 102 */ | |
| 103 XMLPUBFUN int XMLCALL | |
| 104 xmlMemSetup (xmlFreeFunc freeFunc, | |
| 105 xmlMallocFunc mallocFunc, | |
| 106 xmlReallocFunc reallocFunc, | |
| 107 xmlStrdupFunc strdupFunc); | |
| 108 XMLPUBFUN int XMLCALL | |
| 109 xmlMemGet (xmlFreeFunc *freeFunc, | |
| 110 xmlMallocFunc *mallocFunc, | |
| 111 xmlReallocFunc *reallocFunc, | |
| 112 xmlStrdupFunc *strdupFunc); | |
| 113 XMLPUBFUN int XMLCALL | |
| 114 xmlGcMemSetup (xmlFreeFunc freeFunc, | |
| 115 xmlMallocFunc mallocFunc, | |
| 116 xmlMallocFunc mallocAtomicFunc, | |
| 117 xmlReallocFunc reallocFunc, | |
| 118 xmlStrdupFunc strdupFunc); | |
| 119 XMLPUBFUN int XMLCALL | |
| 120 xmlGcMemGet (xmlFreeFunc *freeFunc, | |
| 121 xmlMallocFunc *mallocFunc, | |
| 122 xmlMallocFunc *mallocAtomicFunc, | |
| 123 xmlReallocFunc *reallocFunc, | |
| 124 xmlStrdupFunc *strdupFunc); | |
| 125 | |
| 126 /* | |
| 127 * Initialization of the memory layer. | |
| 128 */ | |
| 129 XMLPUBFUN int XMLCALL | |
| 130 xmlInitMemory (void); | |
| 131 | |
| 132 /* | |
| 133 * Cleanup of the memory layer. | |
| 134 */ | |
| 135 XMLPUBFUN void XMLCALL | |
| 136 xmlCleanupMemory (void); | |
| 137 /* | |
| 138 * These are specific to the XML debug memory wrapper. | |
| 139 */ | |
| 140 XMLPUBFUN int XMLCALL | |
| 141 xmlMemUsed (void); | |
| 142 XMLPUBFUN int XMLCALL | |
| 143 xmlMemBlocks (void); | |
| 144 XMLPUBFUN void XMLCALL | |
| 145 xmlMemDisplay (FILE *fp); | |
| 146 XMLPUBFUN void XMLCALL | |
| 147 xmlMemDisplayLast(FILE *fp, long nbBytes); | |
| 148 XMLPUBFUN void XMLCALL | |
| 149 xmlMemShow (FILE *fp, int nr); | |
| 150 XMLPUBFUN void XMLCALL | |
| 151 xmlMemoryDump (void); | |
| 152 XMLPUBFUN void * XMLCALL | |
| 153 xmlMemMalloc (size_t size) LIBXML_ATTR_ALLOC_SIZE(1); | |
| 154 XMLPUBFUN void * XMLCALL | |
| 155 xmlMemRealloc (void *ptr,size_t size); | |
| 156 XMLPUBFUN void XMLCALL | |
| 157 xmlMemFree (void *ptr); | |
| 158 XMLPUBFUN char * XMLCALL | |
| 159 xmlMemoryStrdup (const char *str); | |
| 160 XMLPUBFUN void * XMLCALL | |
| 161 xmlMallocLoc (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1); | |
| 162 XMLPUBFUN void * XMLCALL | |
| 163 xmlReallocLoc (void *ptr, size_t size, const char *file, int line); | |
| 164 XMLPUBFUN void * XMLCALL | |
| 165 xmlMallocAtomicLoc (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1); | |
| 166 XMLPUBFUN char * XMLCALL | |
| 167 xmlMemStrdupLoc (const char *str, const char *file, int line); | |
| 168 | |
| 169 | |
| 170 #ifdef DEBUG_MEMORY_LOCATION | |
| 171 /** | |
| 172 * xmlMalloc: | |
| 173 * @size: number of bytes to allocate | |
| 174 * | |
| 175 * Wrapper for the malloc() function used in the XML library. | |
| 176 * | |
| 177 * Returns the pointer to the allocated area or NULL in case of error. | |
| 178 */ | |
| 179 #define xmlMalloc(size) xmlMallocLoc((size), __FILE__, __LINE__) | |
| 180 /** | |
| 181 * xmlMallocAtomic: | |
| 182 * @size: number of bytes to allocate | |
| 183 * | |
| 184 * Wrapper for the malloc() function used in the XML library for allocation | |
| 185 * of block not containing pointers to other areas. | |
| 186 * | |
| 187 * Returns the pointer to the allocated area or NULL in case of error. | |
| 188 */ | |
| 189 #define xmlMallocAtomic(size) xmlMallocAtomicLoc((size), __FILE__, __LINE__) | |
| 190 /** | |
| 191 * xmlRealloc: | |
| 192 * @ptr: pointer to the existing allocated area | |
| 193 * @size: number of bytes to allocate | |
| 194 * | |
| 195 * Wrapper for the realloc() function used in the XML library. | |
| 196 * | |
| 197 * Returns the pointer to the allocated area or NULL in case of error. | |
| 198 */ | |
| 199 #define xmlRealloc(ptr, size) xmlReallocLoc((ptr), (size), __FILE__, __LINE__) | |
| 200 /** | |
| 201 * xmlMemStrdup: | |
| 202 * @str: pointer to the existing string | |
| 203 * | |
| 204 * Wrapper for the strdup() function, xmlStrdup() is usually preferred. | |
| 205 * | |
| 206 * Returns the pointer to the allocated area or NULL in case of error. | |
| 207 */ | |
| 208 #define xmlMemStrdup(str) xmlMemStrdupLoc((str), __FILE__, __LINE__) | |
| 209 | |
| 210 #endif /* DEBUG_MEMORY_LOCATION */ | |
| 211 | |
| 212 #ifdef __cplusplus | |
| 213 } | |
| 214 #endif /* __cplusplus */ | |
| 215 | |
| 216 #ifndef __XML_GLOBALS_H | |
| 217 #ifndef __XML_THREADS_H__ | |
| 218 #include <libxml/threads.h> | |
| 219 #include <libxml/globals.h> | |
| 220 #endif | |
| 221 #endif | |
| 222 | |
| 223 #endif /* __DEBUG_MEMORY_ALLOC__ */ | |
| 224 |
