Annotation of embedaddon/libxml2/globals.c, revision 1.1.1.2

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>