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