1 /*
2  * globals.c: definition and handling of the set of global variables
3  *            of the library
4  *
5  * The bottom of this file is automatically generated by build_glob.py
6  * based on the description file global.data
7  *
8  * See Copyright for the status of this software.
9  *
10  * Gary Pennington <Gary.Pennington@uk.sun.com>
11  * daniel@veillard.com
12  */
13 
14 #define IN_LIBXML
15 #include "libxml.h"
16 
17 #ifdef HAVE_STDLIB_H
18 #include <stdlib.h>
19 #endif
20 #include <string.h>
21 
22 #include <libxml/globals.h>
23 #include <libxml/xmlmemory.h>
24 #include <libxml/threads.h>
25 
26 /* #define DEBUG_GLOBALS */
27 
28 /*
29  * Helpful Macro
30  */
31 #ifdef LIBXML_THREAD_ENABLED
32 #define IS_MAIN_THREAD (xmlIsMainThread())
33 #else
34 #define IS_MAIN_THREAD 1
35 #endif
36 
37 /*
38  * Mutex to protect "ForNewThreads" variables
39  */
40 static xmlMutexPtr xmlThrDefMutex = NULL;
41 
42 /**
43  * xmlInitGlobals:
44  *
45  * Additional initialisation for multi-threading
46  */
xmlInitGlobals(void)47 void xmlInitGlobals(void)
48 {
49     xmlThrDefMutex = xmlNewMutex();
50 }
51 
52 /**
53  * xmlCleanupGlobals:
54  *
55  * Additional cleanup for multi-threading
56  */
xmlCleanupGlobals(void)57 void xmlCleanupGlobals(void)
58 {
59     if (xmlThrDefMutex != NULL) {
60         xmlFreeMutex(xmlThrDefMutex);
61         xmlThrDefMutex = NULL;
62     }
63 }
64 
65 /************************************************************************
66  *                                                                      *
67  *      All the user accessible global variables of the library         *
68  *                                                                      *
69  ************************************************************************/
70 
71 /*
72  * Memory allocation routines
73  */
74 #undef  xmlFree
75 #undef  xmlMalloc
76 #undef  xmlMallocAtomic
77 #undef  xmlMemStrdup
78 #undef  xmlRealloc
79 
80 #if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
81 xmlFreeFunc vtk_libxml2_xmlFree = (xmlFreeFunc) xmlMemFree;
82 xmlMallocFunc vtk_libxml2_xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
83 xmlMallocFunc vtk_libxml2_xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
84 xmlReallocFunc vtk_libxml2_xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
85 xmlStrdupFunc vtk_libxml2_xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
86 #else
87 /**
88  * xmlFree:
89  * @mem: an already allocated block of memory
90  *
91  * The variable holding the libxml free() implementation
92  */
93 xmlFreeFunc vtk_libxml2_xmlFree = (xmlFreeFunc) free;
94 /**
95  * xmlMalloc:
96  * @size:  the size requested in bytes
97  *
98  * The variable holding the libxml malloc() implementation
99  *
100  * Returns a pointer to the newly allocated block or NULL in case of error
101  */
102 xmlMallocFunc vtk_libxml2_xmlMalloc = (xmlMallocFunc) malloc;
103 /**
104  * xmlMallocAtomic:
105  * @size:  the size requested in bytes
106  *
107  * The variable holding the libxml malloc() implementation for atomic
108  * data (i.e. blocks not containings pointers), useful when using a
109  * garbage collecting allocator.
110  *
111  * Returns a pointer to the newly allocated block or NULL in case of error
112  */
113 xmlMallocFunc vtk_libxml2_xmlMallocAtomic = (xmlMallocFunc) malloc;
114 /**
115  * xmlRealloc:
116  * @mem: an already allocated block of memory
117  * @size:  the new size requested in bytes
118  *
119  * The variable holding the libxml realloc() implementation
120  *
121  * Returns a pointer to the newly reallocated block or NULL in case of error
122  */
123 xmlReallocFunc vtk_libxml2_xmlRealloc = (xmlReallocFunc) realloc;
124 /**
125  * xmlMemStrdup:
126  * @str: a zero terminated string
127  *
128  * The variable holding the libxml strdup() implementation
129  *
130  * Returns the copy of the string or NULL in case of error
131  */
132 xmlStrdupFunc vtk_libxml2_xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
133 #endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */
134 
135 #include <libxml/threads.h>
136 #include <libxml/globals.h>
137 #include <libxml/SAX.h>
138 
139 #undef  docbDefaultSAXHandler
140 #undef  htmlDefaultSAXHandler
141 #undef  oldXMLWDcompatibility
142 #undef  xmlBufferAllocScheme
143 #undef  xmlDefaultBufferSize
144 #undef  xmlDefaultSAXHandler
145 #undef  xmlDefaultSAXLocator
146 #undef  xmlDoValidityCheckingDefaultValue
147 #undef  xmlGenericError
148 #undef  xmlStructuredError
149 #undef  xmlGenericErrorContext
150 #undef  xmlGetWarningsDefaultValue
151 #undef  xmlIndentTreeOutput
152 #undef  xmlTreeIndentString
153 #undef  xmlKeepBlanksDefaultValue
154 #undef  xmlLineNumbersDefaultValue
155 #undef  xmlLoadExtDtdDefaultValue
156 #undef  xmlParserDebugEntities
157 #undef  xmlParserVersion
158 #undef  xmlPedanticParserDefaultValue
159 #undef  xmlSaveNoEmptyTags
160 #undef  xmlSubstituteEntitiesDefaultValue
161 #undef  xmlRegisterNodeDefaultValue
162 #undef  xmlDeregisterNodeDefaultValue
163 #undef  xmlLastError
164 
165 #undef  xmlParserInputBufferCreateFilenameValue
166 #undef  xmlOutputBufferCreateFilenameValue
167 
168 /**
169  * xmlParserVersion:
170  *
171  * Constant string describing the internal version of the library
172  */
173 const char *vtk_libxml2_xmlParserVersion = LIBXML_VERSION_STRING LIBXML_VERSION_EXTRA;
174 
175 /**
176  * xmlBufferAllocScheme:
177  *
178  * Global setting, default allocation policy for buffers, default is
179  * XML_BUFFER_ALLOC_EXACT
180  */
181 xmlBufferAllocationScheme vtk_libxml2_xmlBufferAllocScheme = XML_BUFFER_ALLOC_EXACT;
182 static xmlBufferAllocationScheme xmlBufferAllocSchemeThrDef = XML_BUFFER_ALLOC_EXACT;
183 /**
184  * xmlDefaultBufferSize:
185  *
186  * Global setting, default buffer size. Default value is BASE_BUFFER_SIZE
187  */
188 int vtk_libxml2_xmlDefaultBufferSize = BASE_BUFFER_SIZE;
189 static int xmlDefaultBufferSizeThrDef = BASE_BUFFER_SIZE;
190 
191 /*
192  * Parser defaults
193  */
194 
195 /**
196  * oldXMLWDcompatibility:
197  *
198  * Global setting, DEPRECATED.
199  */
200 int vtk_libxml2_oldXMLWDcompatibility = 0; /* DEPRECATED */
201 /**
202  * xmlParserDebugEntities:
203  *
204  * Global setting, asking the parser to print out debugging informations.
205  * while handling entities.
206  * Disabled by default
207  */
208 int vtk_libxml2_xmlParserDebugEntities = 0;
209 static int xmlParserDebugEntitiesThrDef = 0;
210 /**
211  * xmlDoValidityCheckingDefaultValue:
212  *
213  * Global setting, indicate that the parser should work in validating mode.
214  * Disabled by default.
215  */
216 int vtk_libxml2_xmlDoValidityCheckingDefaultValue = 0;
217 static int xmlDoValidityCheckingDefaultValueThrDef = 0;
218 /**
219  * xmlGetWarningsDefaultValue:
220  *
221  * Global setting, indicate that the parser should provide warnings.
222  * Activated by default.
223  */
224 int vtk_libxml2_xmlGetWarningsDefaultValue = 1;
225 static int xmlGetWarningsDefaultValueThrDef = 1;
226 /**
227  * xmlLoadExtDtdDefaultValue:
228  *
229  * Global setting, indicate that the parser should load DTD while not
230  * validating.
231  * Disabled by default.
232  */
233 int vtk_libxml2_xmlLoadExtDtdDefaultValue = 0;
234 static int xmlLoadExtDtdDefaultValueThrDef = 0;
235 /**
236  * xmlPedanticParserDefaultValue:
237  *
238  * Global setting, indicate that the parser be pedantic
239  * Disabled by default.
240  */
241 int vtk_libxml2_xmlPedanticParserDefaultValue = 0;
242 static int xmlPedanticParserDefaultValueThrDef = 0;
243 /**
244  * xmlLineNumbersDefaultValue:
245  *
246  * Global setting, indicate that the parser should store the line number
247  * in the content field of elements in the DOM tree.
248  * Disabled by default since this may not be safe for old classes of
249  * applicaton.
250  */
251 int vtk_libxml2_xmlLineNumbersDefaultValue = 0;
252 static int xmlLineNumbersDefaultValueThrDef = 0;
253 /**
254  * xmlKeepBlanksDefaultValue:
255  *
256  * Global setting, indicate that the parser should keep all blanks
257  * nodes found in the content
258  * Activated by default, this is actually needed to have the parser
259  * conformant to the XML Recommendation, however the option is kept
260  * for some applications since this was libxml1 default behaviour.
261  */
262 int vtk_libxml2_xmlKeepBlanksDefaultValue = 1;
263 static int xmlKeepBlanksDefaultValueThrDef = 1;
264 /**
265  * xmlSubstituteEntitiesDefaultValue:
266  *
267  * Global setting, indicate that the parser should not generate entity
268  * references but replace them with the actual content of the entity
269  * Disabled by default, this should be activated when using XPath since
270  * the XPath data model requires entities replacement and the XPath
271  * engine does not handle entities references transparently.
272  */
273 int vtk_libxml2_xmlSubstituteEntitiesDefaultValue = 0;
274 static int xmlSubstituteEntitiesDefaultValueThrDef = 0;
275 
276 xmlRegisterNodeFunc vtk_libxml2_xmlRegisterNodeDefaultValue = NULL;
277 static xmlRegisterNodeFunc xmlRegisterNodeDefaultValueThrDef = NULL;
278 xmlDeregisterNodeFunc vtk_libxml2_xmlDeregisterNodeDefaultValue = NULL;
279 static xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValueThrDef = NULL;
280 
281 xmlParserInputBufferCreateFilenameFunc vtk_libxml2_xmlParserInputBufferCreateFilenameValue = NULL;
282 static xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValueThrDef = NULL;
283 
284 xmlOutputBufferCreateFilenameFunc vtk_libxml2_xmlOutputBufferCreateFilenameValue = NULL;
285 static xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValueThrDef = NULL;
286 
287 /*
288  * Error handling
289  */
290 
291 /* xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc; */
292 /* Must initialize xmlGenericError in xmlInitParser */
293 void XMLCDECL xmlGenericErrorDefaultFunc        (void *ctx ATTRIBUTE_UNUSED,
294                                  const char *msg,
295                                  ...);
296 /**
297  * xmlGenericError:
298  *
299  * Global setting: function used for generic error callbacks
300  */
301 xmlGenericErrorFunc vtk_libxml2_xmlGenericError = xmlGenericErrorDefaultFunc;
302 static xmlGenericErrorFunc xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
303 /**
304  * xmlStructuredError:
305  *
306  * Global setting: function used for structured error callbacks
307  */
308 xmlStructuredErrorFunc vtk_libxml2_xmlStructuredError = NULL;
309 static xmlStructuredErrorFunc xmlStructuredErrorThrDef = NULL;
310 /**
311  * xmlGenericErrorContext:
312  *
313  * Global setting passed to generic error callbacks
314  */
315 void *vtk_libxml2_xmlGenericErrorContext = NULL;
316 static void *xmlGenericErrorContextThrDef = NULL;
317 xmlError vtk_libxml2_xmlLastError = {0}; /* Init avoids common block on Mac */
318 
319 /*
320  * output defaults
321  */
322 /**
323  * xmlIndentTreeOutput:
324  *
325  * Global setting, asking the serializer to indent the output tree by default
326  * Enabled by default
327  */
328 int vtk_libxml2_xmlIndentTreeOutput = 1;
329 static int xmlIndentTreeOutputThrDef = 1;
330 
331 /**
332  * xmlTreeIndentString:
333  *
334  * The string used to do one-level indent. By default is equal to "  " (two spaces)
335  */
336 const char *vtk_libxml2_xmlTreeIndentString = "  ";
337 static const char *xmlTreeIndentStringThrDef = "  ";
338 
339 /**
340  * xmlSaveNoEmptyTags:
341  *
342  * Global setting, asking the serializer to not output empty tags
343  * as <empty/> but <empty></empty>. those two forms are undistinguishable
344  * once parsed.
345  * Disabled by default
346  */
347 int vtk_libxml2_xmlSaveNoEmptyTags = 0;
348 static int xmlSaveNoEmptyTagsThrDef = 0;
349 
350 #ifdef LIBXML_SAX1_ENABLED
351 /**
352  * xmlDefaultSAXHandler:
353  *
354  * Default SAX version1 handler for XML, builds the DOM tree
355  */
356 xmlSAXHandlerV1 vtk_libxml2_xmlDefaultSAXHandler = {
357     xmlSAX2InternalSubset,
358     xmlSAX2IsStandalone,
359     xmlSAX2HasInternalSubset,
360     xmlSAX2HasExternalSubset,
361     xmlSAX2ResolveEntity,
362     xmlSAX2GetEntity,
363     xmlSAX2EntityDecl,
364     xmlSAX2NotationDecl,
365     xmlSAX2AttributeDecl,
366     xmlSAX2ElementDecl,
367     xmlSAX2UnparsedEntityDecl,
368     xmlSAX2SetDocumentLocator,
369     xmlSAX2StartDocument,
370     xmlSAX2EndDocument,
371     xmlSAX2StartElement,
372     xmlSAX2EndElement,
373     xmlSAX2Reference,
374     xmlSAX2Characters,
375     xmlSAX2Characters,
376     xmlSAX2ProcessingInstruction,
377     xmlSAX2Comment,
378     xmlParserWarning,
379     xmlParserError,
380     xmlParserError,
381     xmlSAX2GetParameterEntity,
382     xmlSAX2CDataBlock,
383     xmlSAX2ExternalSubset,
384     0,
385 };
386 #endif /* LIBXML_SAX1_ENABLED */
387 
388 /**
389  * xmlDefaultSAXLocator:
390  *
391  * The default SAX Locator
392  * { getPublicId, getSystemId, getLineNumber, getColumnNumber}
393  */
394 xmlSAXLocator vtk_libxml2_xmlDefaultSAXLocator = {
395     xmlSAX2GetPublicId,
396     xmlSAX2GetSystemId,
397     xmlSAX2GetLineNumber,
398     xmlSAX2GetColumnNumber
399 };
400 
401 #ifdef LIBXML_HTML_ENABLED
402 /**
403  * htmlDefaultSAXHandler:
404  *
405  * Default old SAX v1 handler for HTML, builds the DOM tree
406  */
407 xmlSAXHandlerV1 vtk_libxml2_htmlDefaultSAXHandler = {
408     xmlSAX2InternalSubset,
409     NULL,
410     NULL,
411     NULL,
412     NULL,
413     xmlSAX2GetEntity,
414     NULL,
415     NULL,
416     NULL,
417     NULL,
418     NULL,
419     xmlSAX2SetDocumentLocator,
420     xmlSAX2StartDocument,
421     xmlSAX2EndDocument,
422     xmlSAX2StartElement,
423     xmlSAX2EndElement,
424     NULL,
425     xmlSAX2Characters,
426     xmlSAX2IgnorableWhitespace,
427     xmlSAX2ProcessingInstruction,
428     xmlSAX2Comment,
429     xmlParserWarning,
430     xmlParserError,
431     xmlParserError,
432     xmlSAX2GetParameterEntity,
433     xmlSAX2CDataBlock,
434     NULL,
435     0,
436 };
437 #endif /* LIBXML_HTML_ENABLED */
438 
439 #ifdef LIBXML_DOCB_ENABLED
440 /**
441  * docbDefaultSAXHandler:
442  *
443  * Default old SAX v1 handler for SGML DocBook, builds the DOM tree
444  */
445 xmlSAXHandlerV1 vtk_libxml2_docbDefaultSAXHandler = {
446     xmlSAX2InternalSubset,
447     xmlSAX2IsStandalone,
448     xmlSAX2HasInternalSubset,
449     xmlSAX2HasExternalSubset,
450     xmlSAX2ResolveEntity,
451     xmlSAX2GetEntity,
452     xmlSAX2EntityDecl,
453     NULL,
454     NULL,
455     NULL,
456     NULL,
457     xmlSAX2SetDocumentLocator,
458     xmlSAX2StartDocument,
459     xmlSAX2EndDocument,
460     xmlSAX2StartElement,
461     xmlSAX2EndElement,
462     xmlSAX2Reference,
463     xmlSAX2Characters,
464     xmlSAX2IgnorableWhitespace,
465     NULL,
466     xmlSAX2Comment,
467     xmlParserWarning,
468     xmlParserError,
469     xmlParserError,
470     xmlSAX2GetParameterEntity,
471     NULL,
472     NULL,
473     0,
474 };
475 #endif /* LIBXML_DOCB_ENABLED */
476 
477 /**
478  * xmlInitializeGlobalState:
479  * @gs: a pointer to a newly allocated global state
480  *
481  * xmlInitializeGlobalState() initialize a global state with all the
482  * default values of the library.
483  */
484 void
xmlInitializeGlobalState(xmlGlobalStatePtr gs)485 xmlInitializeGlobalState(xmlGlobalStatePtr gs)
486 {
487 #ifdef DEBUG_GLOBALS
488     fprintf(stderr, "Initializing globals at %lu for thread %d\n",
489             (unsigned long) gs, xmlGetThreadId());
490 #endif
491 
492     /*
493      * Perform initialization as required by libxml
494      */
495     if (xmlThrDefMutex == NULL)
496         xmlInitGlobals();
497 
498     xmlMutexLock(xmlThrDefMutex);
499 
500 #if defined(LIBXML_DOCB_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
501     initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
502 #endif
503 #if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED)
504     inithtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler);
505 #endif
506 
507     gs->oldXMLWDcompatibility = 0;
508     gs->xmlBufferAllocScheme = xmlBufferAllocSchemeThrDef;
509     gs->xmlDefaultBufferSize = xmlDefaultBufferSizeThrDef;
510 #if defined(LIBXML_SAX1_ENABLED) && defined(LIBXML_LEGACY_ENABLED)
511     initxmlDefaultSAXHandler(&gs->xmlDefaultSAXHandler, 1);
512 #endif /* LIBXML_SAX1_ENABLED */
513     gs->xmlDefaultSAXLocator.getPublicId = xmlSAX2GetPublicId;
514     gs->xmlDefaultSAXLocator.getSystemId = xmlSAX2GetSystemId;
515     gs->xmlDefaultSAXLocator.getLineNumber = xmlSAX2GetLineNumber;
516     gs->xmlDefaultSAXLocator.getColumnNumber = xmlSAX2GetColumnNumber;
517     gs->xmlDoValidityCheckingDefaultValue =
518          xmlDoValidityCheckingDefaultValueThrDef;
519 #if defined(DEBUG_MEMORY_LOCATION) | defined(DEBUG_MEMORY)
520     gs->xmlFree = (xmlFreeFunc) vtk_libxml2_xmlMemFree;
521     gs->xmlMalloc = (xmlMallocFunc) vtk_libxml2_xmlMemMalloc;
522     gs->xmlMallocAtomic = (xmlMallocFunc) vtk_libxml2_xmlMemMalloc;
523     gs->xmlRealloc = (xmlReallocFunc) vtk_libxml2_xmlMemRealloc;
524     gs->xmlMemStrdup = (xmlStrdupFunc) vtk_libxml2_xmlMemoryStrdup;
525 #else
526     gs->xmlFree = (xmlFreeFunc) free;
527     gs->xmlMalloc = (xmlMallocFunc) malloc;
528     gs->xmlMallocAtomic = (xmlMallocFunc) malloc;
529     gs->xmlRealloc = (xmlReallocFunc) realloc;
530     gs->xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
531 #endif
532     gs->xmlGetWarningsDefaultValue = xmlGetWarningsDefaultValueThrDef;
533     gs->xmlIndentTreeOutput = xmlIndentTreeOutputThrDef;
534     gs->xmlTreeIndentString = xmlTreeIndentStringThrDef;
535     gs->xmlKeepBlanksDefaultValue = xmlKeepBlanksDefaultValueThrDef;
536     gs->xmlLineNumbersDefaultValue = xmlLineNumbersDefaultValueThrDef;
537     gs->xmlLoadExtDtdDefaultValue = xmlLoadExtDtdDefaultValueThrDef;
538     gs->xmlParserDebugEntities = xmlParserDebugEntitiesThrDef;
539     gs->xmlParserVersion = LIBXML_VERSION_STRING;
540     gs->xmlPedanticParserDefaultValue = xmlPedanticParserDefaultValueThrDef;
541     gs->xmlSaveNoEmptyTags = xmlSaveNoEmptyTagsThrDef;
542     gs->xmlSubstituteEntitiesDefaultValue =
543         xmlSubstituteEntitiesDefaultValueThrDef;
544 
545     gs->xmlGenericError = xmlGenericErrorThrDef;
546     gs->xmlStructuredError = xmlStructuredErrorThrDef;
547     gs->xmlGenericErrorContext = xmlGenericErrorContextThrDef;
548     gs->xmlRegisterNodeDefaultValue = xmlRegisterNodeDefaultValueThrDef;
549     gs->xmlDeregisterNodeDefaultValue = xmlDeregisterNodeDefaultValueThrDef;
550 
551         gs->xmlParserInputBufferCreateFilenameValue = xmlParserInputBufferCreateFilenameValueThrDef;
552         gs->xmlOutputBufferCreateFilenameValue = xmlOutputBufferCreateFilenameValueThrDef;
553     memset(&gs->xmlLastError, 0, sizeof(xmlError));
554 
555     xmlMutexUnlock(xmlThrDefMutex);
556 }
557 
558 #define docbDefaultSAXHandler vtk_libxml2_docbDefaultSAXHandler
559 #define htmlDefaultSAXHandler vtk_libxml2_htmlDefaultSAXHandler
560 #define xmlLastError vtk_libxml2_xmlLastError
561 #define oldXMLWDcompatibility vtk_libxml2_oldXMLWDcompatibility
562 #define xmlBufferAllocScheme vtk_libxml2_xmlBufferAllocScheme
563 #define xmlDefaultBufferSize vtk_libxml2_xmlDefaultBufferSize
564 #define xmlDefaultSAXHandler vtk_libxml2_xmlDefaultSAXHandler
565 #define xmlDefaultSAXLocator vtk_libxml2_xmlDefaultSAXLocator
566 #define xmlDoValidityCheckingDefaultValue vtk_libxml2_xmlDoValidityCheckingDefaultValue
567 #define xmlGenericError vtk_libxml2_xmlGenericError
568 #define xmlStructuredError vtk_libxml2_xmlStructuredError
569 #define xmlGenericErrorContext vtk_libxml2_xmlGenericErrorContext
570 #define xmlGetWarningsDefaultValue vtk_libxml2_xmlGetWarningsDefaultValue
571 #define xmlIndentTreeOutput vtk_libxml2_xmlIndentTreeOutput
572 #define xmlTreeIndentString vtk_libxml2_xmlTreeIndentString
573 #define xmlKeepBlanksDefaultValue vtk_libxml2_xmlKeepBlanksDefaultValue
574 #define xmlLineNumbersDefaultValue vtk_libxml2_xmlLineNumbersDefaultValue
575 #define xmlLoadExtDtdDefaultValue vtk_libxml2_xmlLoadExtDtdDefaultValue
576 #define xmlParserDebugEntities vtk_libxml2_xmlParserDebugEntities
577 #define xmlParserVersion vtk_libxml2_xmlParserVersion
578 #define xmlPedanticParserDefaultValue vtk_libxml2_xmlPedanticParserDefaultValue
579 #define xmlSaveNoEmptyTags vtk_libxml2_xmlSaveNoEmptyTags
580 #define xmlSubstituteEntitiesDefaultValue vtk_libxml2_xmlSubstituteEntitiesDefaultValue
581 #define xmlRegisterNodeDefaultValue vtk_libxml2_xmlRegisterNodeDefaultValue
582 #define xmlDeregisterNodeDefaultValue vtk_libxml2_xmlDeregisterNodeDefaultValue
583 #define xmlParserInputBufferCreateFilenameValue vtk_libxml2_xmlParserInputBufferCreateFilenameValue
584 #define xmlOutputBufferCreateFilenameValue vtk_libxml2_xmlOutputBufferCreateFilenameValue
585 
586 #define xmlMalloc vtk_libxml2_xmlMalloc
587 #define xmlMallocAtomic vtk_libxml2_xmlMallocAtomic
588 #define xmlRealloc vtk_libxml2_xmlRealloc
589 #define xmlFree vtk_libxml2_xmlFree
590 #define xmlMemStrdup vtk_libxml2_xmlMemStrdup
591 
592 /**
593  * DOC_DISABLE : we ignore missing doc for the xmlThrDef functions,
594  *               those are really internal work
595  */
596 void
xmlThrDefSetGenericErrorFunc(void * ctx,xmlGenericErrorFunc handler)597 xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) {
598     xmlMutexLock(xmlThrDefMutex);
599     xmlGenericErrorContextThrDef = ctx;
600     if (handler != NULL)
601         xmlGenericErrorThrDef = handler;
602     else
603         xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
604     xmlMutexUnlock(xmlThrDefMutex);
605 }
606 
607 void
xmlThrDefSetStructuredErrorFunc(void * ctx,xmlStructuredErrorFunc handler)608 xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) {
609     xmlMutexLock(xmlThrDefMutex);
610     xmlGenericErrorContextThrDef = ctx;
611     xmlStructuredErrorThrDef = handler;
612     xmlMutexUnlock(xmlThrDefMutex);
613 }
614 
615 /**
616  * xmlRegisterNodeDefault:
617  * @func: function pointer to the new RegisterNodeFunc
618  *
619  * Registers a callback for node creation
620  *
621  * Returns the old value of the registration function
622  */
623 xmlRegisterNodeFunc
xmlRegisterNodeDefault(xmlRegisterNodeFunc func)624 xmlRegisterNodeDefault(xmlRegisterNodeFunc func)
625 {
626     xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue;
627 
628     __xmlRegisterCallbacks = 1;
629     xmlRegisterNodeDefaultValue = func;
630     return(old);
631 }
632 
633 xmlRegisterNodeFunc
xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func)634 xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func)
635 {
636     xmlRegisterNodeFunc old;
637 
638     xmlMutexLock(xmlThrDefMutex);
639     old = xmlRegisterNodeDefaultValueThrDef;
640 
641     __xmlRegisterCallbacks = 1;
642     xmlRegisterNodeDefaultValueThrDef = func;
643     xmlMutexUnlock(xmlThrDefMutex);
644 
645     return(old);
646 }
647 
648 /**
649  * xmlDeregisterNodeDefault:
650  * @func: function pointer to the new DeregisterNodeFunc
651  *
652  * Registers a callback for node destruction
653  *
654  * Returns the previous value of the deregistration function
655  */
656 xmlDeregisterNodeFunc
xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)657 xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)
658 {
659     xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue;
660 
661     __xmlRegisterCallbacks = 1;
662     xmlDeregisterNodeDefaultValue = func;
663     return(old);
664 }
665 
666 xmlDeregisterNodeFunc
xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)667 xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)
668 {
669     xmlDeregisterNodeFunc old;
670 
671     xmlMutexLock(xmlThrDefMutex);
672     old = xmlDeregisterNodeDefaultValueThrDef;
673 
674     __xmlRegisterCallbacks = 1;
675     xmlDeregisterNodeDefaultValueThrDef = func;
676     xmlMutexUnlock(xmlThrDefMutex);
677 
678     return(old);
679 }
680 
681 xmlParserInputBufferCreateFilenameFunc
xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func)682 xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func)
683 {
684     xmlParserInputBufferCreateFilenameFunc old;
685 
686     xmlMutexLock(xmlThrDefMutex);
687     old = xmlParserInputBufferCreateFilenameValueThrDef;
688     if (old == NULL) {
689                 old = __xmlParserInputBufferCreateFilename;
690         }
691 
692     xmlParserInputBufferCreateFilenameValueThrDef = func;
693     xmlMutexUnlock(xmlThrDefMutex);
694 
695     return(old);
696 }
697 
698 xmlOutputBufferCreateFilenameFunc
xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func)699 xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func)
700 {
701     xmlOutputBufferCreateFilenameFunc old;
702 
703     xmlMutexLock(xmlThrDefMutex);
704     old = xmlOutputBufferCreateFilenameValueThrDef;
705 #ifdef LIBXML_OUTPUT_ENABLED
706     if (old == NULL) {
707                 old = __xmlOutputBufferCreateFilename;
708         }
709 #endif
710     xmlOutputBufferCreateFilenameValueThrDef = func;
711     xmlMutexUnlock(xmlThrDefMutex);
712 
713     return(old);
714 }
715 
716 #ifdef LIBXML_DOCB_ENABLED
717 #undef  docbDefaultSAXHandler
718 xmlSAXHandlerV1 *
__docbDefaultSAXHandler(void)719 __docbDefaultSAXHandler(void) {
720     if (IS_MAIN_THREAD)
721         return (&vtk_libxml2_docbDefaultSAXHandler);
722     else
723         return (&xmlGetGlobalState()->docbDefaultSAXHandler);
724 }
725 #endif
726 
727 #ifdef LIBXML_HTML_ENABLED
728 #undef  htmlDefaultSAXHandler
729 xmlSAXHandlerV1 *
__htmlDefaultSAXHandler(void)730 __htmlDefaultSAXHandler(void) {
731     if (IS_MAIN_THREAD)
732         return (&vtk_libxml2_htmlDefaultSAXHandler);
733     else
734         return (&xmlGetGlobalState()->htmlDefaultSAXHandler);
735 }
736 #endif
737 
738 #undef xmlLastError
739 xmlError *
__xmlLastError(void)740 __xmlLastError(void) {
741     if (IS_MAIN_THREAD)
742         return (&vtk_libxml2_xmlLastError);
743     else
744         return (&xmlGetGlobalState()->xmlLastError);
745 }
746 
747 /*
748  * The following memory routines were apparently lost at some point,
749  * and were re-inserted at this point on June 10, 2004.  Hope it's
750  * the right place for them :-)
751  */
752 #if defined(LIBXML_THREAD_ALLOC_ENABLED) && defined(LIBXML_THREAD_ENABLED)
753 #undef xmlMalloc
754 xmlMallocFunc *
__xmlMalloc(void)755 __xmlMalloc(void){
756     if (IS_MAIN_THREAD)
757         return (&vtk_libxml2_xmlMalloc);
758     else
759         return (&xmlGetGlobalState()->xmlMalloc);
760 }
761 
762 #undef xmlMallocAtomic
763 xmlMallocFunc *
__xmlMallocAtomic(void)764 __xmlMallocAtomic(void){
765     if (IS_MAIN_THREAD)
766         return (&vtk_libxml2_xmlMallocAtomic);
767     else
768         return (&xmlGetGlobalState()->xmlMallocAtomic);
769 }
770 
771 #undef xmlRealloc
772 xmlReallocFunc *
__xmlRealloc(void)773 __xmlRealloc(void){
774     if (IS_MAIN_THREAD)
775         return (&vtk_libxml2_xmlRealloc);
776     else
777         return (&xmlGetGlobalState()->xmlRealloc);
778 }
779 
780 #undef xmlFree
781 xmlFreeFunc *
__xmlFree(void)782 __xmlFree(void){
783     if (IS_MAIN_THREAD)
784         return (&vtk_libxml2_xmlFree);
785     else
786         return (&xmlGetGlobalState()->xmlFree);
787 }
788 
789 xmlStrdupFunc *
__xmlMemStrdup(void)790 __xmlMemStrdup(void){
791     if (IS_MAIN_THREAD)
792         return (&vtk_libxml2_xmlMemStrdup);
793     else
794         return (&xmlGetGlobalState()->xmlMemStrdup);
795 }
796 
797 #endif
798 
799 /*
800  * Everything starting from the line below is
801  * Automatically generated by build_glob.py.
802  * Do not modify the previous line.
803  */
804 
805 
806 #undef  oldXMLWDcompatibility
807 int *
__oldXMLWDcompatibility(void)808 __oldXMLWDcompatibility(void) {
809     if (IS_MAIN_THREAD)
810         return (&vtk_libxml2_oldXMLWDcompatibility);
811     else
812         return (&xmlGetGlobalState()->oldXMLWDcompatibility);
813 }
814 
815 #undef  xmlBufferAllocScheme
816 xmlBufferAllocationScheme *
__xmlBufferAllocScheme(void)817 __xmlBufferAllocScheme(void) {
818     if (IS_MAIN_THREAD)
819         return (&vtk_libxml2_xmlBufferAllocScheme);
820     else
821         return (&xmlGetGlobalState()->xmlBufferAllocScheme);
822 }
xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v)823 xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v) {
824     xmlBufferAllocationScheme ret;
825     xmlMutexLock(xmlThrDefMutex);
826     ret = xmlBufferAllocSchemeThrDef;
827     xmlBufferAllocSchemeThrDef = v;
828     xmlMutexUnlock(xmlThrDefMutex);
829     return ret;
830 }
831 
832 #undef  xmlDefaultBufferSize
833 int *
__xmlDefaultBufferSize(void)834 __xmlDefaultBufferSize(void) {
835     if (IS_MAIN_THREAD)
836         return (&vtk_libxml2_xmlDefaultBufferSize);
837     else
838         return (&xmlGetGlobalState()->xmlDefaultBufferSize);
839 }
xmlThrDefDefaultBufferSize(int v)840 int xmlThrDefDefaultBufferSize(int v) {
841     int ret;
842     xmlMutexLock(xmlThrDefMutex);
843     ret = xmlDefaultBufferSizeThrDef;
844     xmlDefaultBufferSizeThrDef = v;
845     xmlMutexUnlock(xmlThrDefMutex);
846     return ret;
847 }
848 
849 #ifdef LIBXML_SAX1_ENABLED
850 #undef  xmlDefaultSAXHandler
851 xmlSAXHandlerV1 *
__xmlDefaultSAXHandler(void)852 __xmlDefaultSAXHandler(void) {
853     if (IS_MAIN_THREAD)
854         return (&vtk_libxml2_xmlDefaultSAXHandler);
855     else
856         return (&xmlGetGlobalState()->xmlDefaultSAXHandler);
857 }
858 #endif /* LIBXML_SAX1_ENABLED */
859 
860 #undef  xmlDefaultSAXLocator
861 xmlSAXLocator *
__xmlDefaultSAXLocator(void)862 __xmlDefaultSAXLocator(void) {
863     if (IS_MAIN_THREAD)
864         return (&vtk_libxml2_xmlDefaultSAXLocator);
865     else
866         return (&xmlGetGlobalState()->xmlDefaultSAXLocator);
867 }
868 
869 #undef  xmlDoValidityCheckingDefaultValue
870 int *
__xmlDoValidityCheckingDefaultValue(void)871 __xmlDoValidityCheckingDefaultValue(void) {
872     if (IS_MAIN_THREAD)
873         return (&vtk_libxml2_xmlDoValidityCheckingDefaultValue);
874     else
875         return (&xmlGetGlobalState()->xmlDoValidityCheckingDefaultValue);
876 }
xmlThrDefDoValidityCheckingDefaultValue(int v)877 int xmlThrDefDoValidityCheckingDefaultValue(int v) {
878     int ret;
879     xmlMutexLock(xmlThrDefMutex);
880     ret = xmlDoValidityCheckingDefaultValueThrDef;
881     xmlDoValidityCheckingDefaultValueThrDef = v;
882     xmlMutexUnlock(xmlThrDefMutex);
883     return ret;
884 }
885 
886 #undef  xmlGenericError
887 xmlGenericErrorFunc *
__xmlGenericError(void)888 __xmlGenericError(void) {
889     if (IS_MAIN_THREAD)
890         return (&vtk_libxml2_xmlGenericError);
891     else
892         return (&xmlGetGlobalState()->xmlGenericError);
893 }
894 
895 #undef  xmlStructuredError
896 xmlStructuredErrorFunc *
__xmlStructuredError(void)897 __xmlStructuredError(void) {
898     if (IS_MAIN_THREAD)
899         return (&vtk_libxml2_xmlStructuredError);
900     else
901         return (&xmlGetGlobalState()->xmlStructuredError);
902 }
903 
904 #undef  xmlGenericErrorContext
905 void * *
__xmlGenericErrorContext(void)906 __xmlGenericErrorContext(void) {
907     if (IS_MAIN_THREAD)
908         return (&vtk_libxml2_xmlGenericErrorContext);
909     else
910         return (&xmlGetGlobalState()->xmlGenericErrorContext);
911 }
912 
913 #undef  xmlGetWarningsDefaultValue
914 int *
__xmlGetWarningsDefaultValue(void)915 __xmlGetWarningsDefaultValue(void) {
916     if (IS_MAIN_THREAD)
917         return (&vtk_libxml2_xmlGetWarningsDefaultValue);
918     else
919         return (&xmlGetGlobalState()->xmlGetWarningsDefaultValue);
920 }
xmlThrDefGetWarningsDefaultValue(int v)921 int xmlThrDefGetWarningsDefaultValue(int v) {
922     int ret;
923     xmlMutexLock(xmlThrDefMutex);
924     ret = xmlGetWarningsDefaultValueThrDef;
925     xmlGetWarningsDefaultValueThrDef = v;
926     xmlMutexUnlock(xmlThrDefMutex);
927     return ret;
928 }
929 
930 #undef  xmlIndentTreeOutput
931 int *
__xmlIndentTreeOutput(void)932 __xmlIndentTreeOutput(void) {
933     if (IS_MAIN_THREAD)
934         return (&vtk_libxml2_xmlIndentTreeOutput);
935     else
936         return (&xmlGetGlobalState()->xmlIndentTreeOutput);
937 }
xmlThrDefIndentTreeOutput(int v)938 int xmlThrDefIndentTreeOutput(int v) {
939     int ret;
940     xmlMutexLock(xmlThrDefMutex);
941     ret = xmlIndentTreeOutputThrDef;
942     xmlIndentTreeOutputThrDef = v;
943     xmlMutexUnlock(xmlThrDefMutex);
944     return ret;
945 }
946 
947 #undef xmlTreeIndentString
948 const char * *
__xmlTreeIndentString(void)949 __xmlTreeIndentString(void) {
950     if (IS_MAIN_THREAD)
951         return (&vtk_libxml2_xmlTreeIndentString);
952     else
953         return (&xmlGetGlobalState()->xmlTreeIndentString);
954 }
xmlThrDefTreeIndentString(const char * v)955 const char * xmlThrDefTreeIndentString(const char * v) {
956     const char * ret;
957     xmlMutexLock(xmlThrDefMutex);
958     ret = xmlTreeIndentStringThrDef;
959     xmlTreeIndentStringThrDef = v;
960     xmlMutexUnlock(xmlThrDefMutex);
961     return ret;
962 }
963 
964 #undef  xmlKeepBlanksDefaultValue
965 int *
__xmlKeepBlanksDefaultValue(void)966 __xmlKeepBlanksDefaultValue(void) {
967     if (IS_MAIN_THREAD)
968         return (&vtk_libxml2_xmlKeepBlanksDefaultValue);
969     else
970         return (&xmlGetGlobalState()->xmlKeepBlanksDefaultValue);
971 }
xmlThrDefKeepBlanksDefaultValue(int v)972 int xmlThrDefKeepBlanksDefaultValue(int v) {
973     int ret;
974     xmlMutexLock(xmlThrDefMutex);
975     ret = xmlKeepBlanksDefaultValueThrDef;
976     xmlKeepBlanksDefaultValueThrDef = v;
977     xmlMutexUnlock(xmlThrDefMutex);
978     return ret;
979 }
980 
981 #undef  xmlLineNumbersDefaultValue
982 int *
__xmlLineNumbersDefaultValue(void)983 __xmlLineNumbersDefaultValue(void) {
984     if (IS_MAIN_THREAD)
985         return (&vtk_libxml2_xmlLineNumbersDefaultValue);
986     else
987         return (&xmlGetGlobalState()->xmlLineNumbersDefaultValue);
988 }
xmlThrDefLineNumbersDefaultValue(int v)989 int xmlThrDefLineNumbersDefaultValue(int v) {
990     int ret;
991     xmlMutexLock(xmlThrDefMutex);
992     ret = xmlLineNumbersDefaultValueThrDef;
993     xmlLineNumbersDefaultValueThrDef = v;
994     xmlMutexUnlock(xmlThrDefMutex);
995     return ret;
996 }
997 
998 #undef  xmlLoadExtDtdDefaultValue
999 int *
__xmlLoadExtDtdDefaultValue(void)1000 __xmlLoadExtDtdDefaultValue(void) {
1001     if (IS_MAIN_THREAD)
1002         return (&vtk_libxml2_xmlLoadExtDtdDefaultValue);
1003     else
1004         return (&xmlGetGlobalState()->xmlLoadExtDtdDefaultValue);
1005 }
xmlThrDefLoadExtDtdDefaultValue(int v)1006 int xmlThrDefLoadExtDtdDefaultValue(int v) {
1007     int ret;
1008     xmlMutexLock(xmlThrDefMutex);
1009     ret = xmlLoadExtDtdDefaultValueThrDef;
1010     xmlLoadExtDtdDefaultValueThrDef = v;
1011     xmlMutexUnlock(xmlThrDefMutex);
1012     return ret;
1013 }
1014 
1015 #undef  xmlParserDebugEntities
1016 int *
__xmlParserDebugEntities(void)1017 __xmlParserDebugEntities(void) {
1018     if (IS_MAIN_THREAD)
1019         return (&vtk_libxml2_xmlParserDebugEntities);
1020     else
1021         return (&xmlGetGlobalState()->xmlParserDebugEntities);
1022 }
xmlThrDefParserDebugEntities(int v)1023 int xmlThrDefParserDebugEntities(int v) {
1024     int ret;
1025     xmlMutexLock(xmlThrDefMutex);
1026     ret = xmlParserDebugEntitiesThrDef;
1027     xmlParserDebugEntitiesThrDef = v;
1028     xmlMutexUnlock(xmlThrDefMutex);
1029     return ret;
1030 }
1031 
1032 #undef  xmlParserVersion
1033 const char * *
__xmlParserVersion(void)1034 __xmlParserVersion(void) {
1035     if (IS_MAIN_THREAD)
1036         return (&vtk_libxml2_xmlParserVersion);
1037     else
1038         return (&xmlGetGlobalState()->xmlParserVersion);
1039 }
1040 
1041 #undef  xmlPedanticParserDefaultValue
1042 int *
__xmlPedanticParserDefaultValue(void)1043 __xmlPedanticParserDefaultValue(void) {
1044     if (IS_MAIN_THREAD)
1045         return (&vtk_libxml2_xmlPedanticParserDefaultValue);
1046     else
1047         return (&xmlGetGlobalState()->xmlPedanticParserDefaultValue);
1048 }
xmlThrDefPedanticParserDefaultValue(int v)1049 int xmlThrDefPedanticParserDefaultValue(int v) {
1050     int ret;
1051     xmlMutexLock(xmlThrDefMutex);
1052     ret = xmlPedanticParserDefaultValueThrDef;
1053     xmlPedanticParserDefaultValueThrDef = v;
1054     xmlMutexUnlock(xmlThrDefMutex);
1055     return ret;
1056 }
1057 
1058 #undef  xmlSaveNoEmptyTags
1059 int *
__xmlSaveNoEmptyTags(void)1060 __xmlSaveNoEmptyTags(void) {
1061     if (IS_MAIN_THREAD)
1062         return (&vtk_libxml2_xmlSaveNoEmptyTags);
1063     else
1064         return (&xmlGetGlobalState()->xmlSaveNoEmptyTags);
1065 }
xmlThrDefSaveNoEmptyTags(int v)1066 int xmlThrDefSaveNoEmptyTags(int v) {
1067     int ret;
1068     xmlMutexLock(xmlThrDefMutex);
1069     ret = xmlSaveNoEmptyTagsThrDef;
1070     xmlSaveNoEmptyTagsThrDef = v;
1071     xmlMutexUnlock(xmlThrDefMutex);
1072     return ret;
1073 }
1074 
1075 #undef  xmlSubstituteEntitiesDefaultValue
1076 int *
__xmlSubstituteEntitiesDefaultValue(void)1077 __xmlSubstituteEntitiesDefaultValue(void) {
1078     if (IS_MAIN_THREAD)
1079         return (&vtk_libxml2_xmlSubstituteEntitiesDefaultValue);
1080     else
1081         return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultValue);
1082 }
xmlThrDefSubstituteEntitiesDefaultValue(int v)1083 int xmlThrDefSubstituteEntitiesDefaultValue(int v) {
1084     int ret;
1085     xmlMutexLock(xmlThrDefMutex);
1086     ret = xmlSubstituteEntitiesDefaultValueThrDef;
1087     xmlSubstituteEntitiesDefaultValueThrDef = v;
1088     xmlMutexUnlock(xmlThrDefMutex);
1089     return ret;
1090 }
1091 
1092 #undef  xmlRegisterNodeDefaultValue
1093 xmlRegisterNodeFunc *
__xmlRegisterNodeDefaultValue(void)1094 __xmlRegisterNodeDefaultValue(void) {
1095     if (IS_MAIN_THREAD)
1096         return (&vtk_libxml2_xmlRegisterNodeDefaultValue);
1097     else
1098         return (&xmlGetGlobalState()->xmlRegisterNodeDefaultValue);
1099 }
1100 
1101 #undef  xmlDeregisterNodeDefaultValue
1102 xmlDeregisterNodeFunc *
__xmlDeregisterNodeDefaultValue(void)1103 __xmlDeregisterNodeDefaultValue(void) {
1104     if (IS_MAIN_THREAD)
1105         return (&vtk_libxml2_xmlDeregisterNodeDefaultValue);
1106     else
1107         return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
1108 }
1109 
1110 #undef  xmlParserInputBufferCreateFilenameValue
1111 xmlParserInputBufferCreateFilenameFunc *
__xmlParserInputBufferCreateFilenameValue(void)1112 __xmlParserInputBufferCreateFilenameValue(void) {
1113     if (IS_MAIN_THREAD)
1114         return (&vtk_libxml2_xmlParserInputBufferCreateFilenameValue);
1115     else
1116         return (&xmlGetGlobalState()->xmlParserInputBufferCreateFilenameValue);
1117 }
1118 
1119 #undef  xmlOutputBufferCreateFilenameValue
1120 xmlOutputBufferCreateFilenameFunc *
__xmlOutputBufferCreateFilenameValue(void)1121 __xmlOutputBufferCreateFilenameValue(void) {
1122     if (IS_MAIN_THREAD)
1123         return (&vtk_libxml2_xmlOutputBufferCreateFilenameValue);
1124     else
1125         return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
1126 }
1127 
1128 #define bottom_globals
1129 #include "elfgcchack.h"
1130