1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126 |
- /*
- * globals.c: definition and handling of the set of global variables
- * of the library
- *
- * The bottom of this file is automatically generated by build_glob.py
- * based on the description file global.data
- *
- * See Copyright for the status of this software.
- *
- * Gary Pennington <Gary.Pennington@uk.sun.com>
- * daniel@veillard.com
- */
- #define IN_LIBXML
- #include "libxml.h"
- #ifdef HAVE_STDLIB_H
- #include <stdlib.h>
- #endif
- #include <string.h>
- #include <libxml/globals.h>
- #include <libxml/xmlmemory.h>
- #include <libxml/threads.h>
- /* #define DEBUG_GLOBALS */
- /*
- * Helpful Macro
- */
- #ifdef LIBXML_THREAD_ENABLED
- #define IS_MAIN_THREAD (xmlIsMainThread())
- #else
- #define IS_MAIN_THREAD 1
- #endif
- /*
- * Mutex to protect "ForNewThreads" variables
- */
- static xmlMutexPtr xmlThrDefMutex = NULL;
- /**
- * xmlInitGlobals:
- *
- * Additional initialisation for multi-threading
- */
- void xmlInitGlobals(void)
- {
- if (xmlThrDefMutex == NULL)
- xmlThrDefMutex = xmlNewMutex();
- }
- /**
- * xmlCleanupGlobals:
- *
- * Additional cleanup for multi-threading
- */
- void xmlCleanupGlobals(void)
- {
- if (xmlThrDefMutex != NULL) {
- xmlFreeMutex(xmlThrDefMutex);
- xmlThrDefMutex = NULL;
- }
- __xmlGlobalInitMutexDestroy();
- }
- /************************************************************************
- * *
- * All the user accessible global variables of the library *
- * *
- ************************************************************************/
- /*
- * Memory allocation routines
- */
- #undef xmlFree
- #undef xmlMalloc
- #undef xmlMallocAtomic
- #undef xmlMemStrdup
- #undef xmlRealloc
- #if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
- xmlFreeFunc xmlFree = (xmlFreeFunc) xmlMemFree;
- xmlMallocFunc xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
- xmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
- xmlReallocFunc xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
- xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
- #else
- /**
- * xmlFree:
- * @mem: an already allocated block of memory
- *
- * The variable holding the libxml free() implementation
- */
- xmlFreeFunc xmlFree = free;
- /**
- * xmlMalloc:
- * @size: the size requested in bytes
- *
- * The variable holding the libxml malloc() implementation
- *
- * Returns a pointer to the newly allocated block or NULL in case of error
- */
- xmlMallocFunc xmlMalloc = malloc;
- /**
- * xmlMallocAtomic:
- * @size: the size requested in bytes
- *
- * The variable holding the libxml malloc() implementation for atomic
- * data (i.e. blocks not containing pointers), useful when using a
- * garbage collecting allocator.
- *
- * Returns a pointer to the newly allocated block or NULL in case of error
- */
- xmlMallocFunc xmlMallocAtomic = malloc;
- /**
- * xmlRealloc:
- * @mem: an already allocated block of memory
- * @size: the new size requested in bytes
- *
- * The variable holding the libxml realloc() implementation
- *
- * Returns a pointer to the newly reallocated block or NULL in case of error
- */
- xmlReallocFunc xmlRealloc = realloc;
- /**
- * xmlPosixStrdup
- * @cur: the input char *
- *
- * a strdup implementation with a type signature matching POSIX
- *
- * Returns a new xmlChar * or NULL
- */
- static char *
- xmlPosixStrdup(const char *cur) {
- return((char*) xmlCharStrdup(cur));
- }
- /**
- * xmlMemStrdup:
- * @str: a zero terminated string
- *
- * The variable holding the libxml strdup() implementation
- *
- * Returns the copy of the string or NULL in case of error
- */
- xmlStrdupFunc xmlMemStrdup = xmlPosixStrdup;
- #endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */
- #include <libxml/threads.h>
- #include <libxml/globals.h>
- #include <libxml/SAX.h>
- #undef docbDefaultSAXHandler
- #undef htmlDefaultSAXHandler
- #undef oldXMLWDcompatibility
- #undef xmlBufferAllocScheme
- #undef xmlDefaultBufferSize
- #undef xmlDefaultSAXHandler
- #undef xmlDefaultSAXLocator
- #undef xmlDoValidityCheckingDefaultValue
- #undef xmlGenericError
- #undef xmlStructuredError
- #undef xmlGenericErrorContext
- #undef xmlStructuredErrorContext
- #undef xmlGetWarningsDefaultValue
- #undef xmlIndentTreeOutput
- #undef xmlTreeIndentString
- #undef xmlKeepBlanksDefaultValue
- #undef xmlLineNumbersDefaultValue
- #undef xmlLoadExtDtdDefaultValue
- #undef xmlParserDebugEntities
- #undef xmlParserVersion
- #undef xmlPedanticParserDefaultValue
- #undef xmlSaveNoEmptyTags
- #undef xmlSubstituteEntitiesDefaultValue
- #undef xmlRegisterNodeDefaultValue
- #undef xmlDeregisterNodeDefaultValue
- #undef xmlLastError
- #undef xmlParserInputBufferCreateFilenameValue
- #undef xmlOutputBufferCreateFilenameValue
- /**
- * xmlParserVersion:
- *
- * Constant string describing the internal version of the library
- */
- const char *xmlParserVersion = LIBXML_VERSION_STRING LIBXML_VERSION_EXTRA;
- /**
- * xmlBufferAllocScheme:
- *
- * Global setting, default allocation policy for buffers, default is
- * XML_BUFFER_ALLOC_EXACT
- */
- xmlBufferAllocationScheme xmlBufferAllocScheme = XML_BUFFER_ALLOC_EXACT;
- static xmlBufferAllocationScheme xmlBufferAllocSchemeThrDef = XML_BUFFER_ALLOC_EXACT;
- /**
- * xmlDefaultBufferSize:
- *
- * Global setting, default buffer size. Default value is BASE_BUFFER_SIZE
- */
- int xmlDefaultBufferSize = BASE_BUFFER_SIZE;
- static int xmlDefaultBufferSizeThrDef = BASE_BUFFER_SIZE;
- /*
- * Parser defaults
- */
- /**
- * oldXMLWDcompatibility:
- *
- * Global setting, DEPRECATED.
- */
- int oldXMLWDcompatibility = 0; /* DEPRECATED */
- /**
- * xmlParserDebugEntities:
- *
- * Global setting, asking the parser to print out debugging information.
- * while handling entities.
- * Disabled by default
- */
- int xmlParserDebugEntities = 0;
- static int xmlParserDebugEntitiesThrDef = 0;
- /**
- * xmlDoValidityCheckingDefaultValue:
- *
- * Global setting, indicate that the parser should work in validating mode.
- * Disabled by default.
- */
- int xmlDoValidityCheckingDefaultValue = 0;
- static int xmlDoValidityCheckingDefaultValueThrDef = 0;
- /**
- * xmlGetWarningsDefaultValue:
- *
- * Global setting, indicate that the parser should provide warnings.
- * Activated by default.
- */
- int xmlGetWarningsDefaultValue = 1;
- static int xmlGetWarningsDefaultValueThrDef = 1;
- /**
- * xmlLoadExtDtdDefaultValue:
- *
- * Global setting, indicate that the parser should load DTD while not
- * validating.
- * Disabled by default.
- */
- int xmlLoadExtDtdDefaultValue = 0;
- static int xmlLoadExtDtdDefaultValueThrDef = 0;
- /**
- * xmlPedanticParserDefaultValue:
- *
- * Global setting, indicate that the parser be pedantic
- * Disabled by default.
- */
- int xmlPedanticParserDefaultValue = 0;
- static int xmlPedanticParserDefaultValueThrDef = 0;
- /**
- * xmlLineNumbersDefaultValue:
- *
- * Global setting, indicate that the parser should store the line number
- * in the content field of elements in the DOM tree.
- * Disabled by default since this may not be safe for old classes of
- * application.
- */
- int xmlLineNumbersDefaultValue = 0;
- static int xmlLineNumbersDefaultValueThrDef = 0;
- /**
- * xmlKeepBlanksDefaultValue:
- *
- * Global setting, indicate that the parser should keep all blanks
- * nodes found in the content
- * Activated by default, this is actually needed to have the parser
- * conformant to the XML Recommendation, however the option is kept
- * for some applications since this was libxml1 default behaviour.
- */
- int xmlKeepBlanksDefaultValue = 1;
- static int xmlKeepBlanksDefaultValueThrDef = 1;
- /**
- * xmlSubstituteEntitiesDefaultValue:
- *
- * Global setting, indicate that the parser should not generate entity
- * references but replace them with the actual content of the entity
- * Disabled by default, this should be activated when using XPath since
- * the XPath data model requires entities replacement and the XPath
- * engine does not handle entities references transparently.
- */
- int xmlSubstituteEntitiesDefaultValue = 0;
- static int xmlSubstituteEntitiesDefaultValueThrDef = 0;
- xmlRegisterNodeFunc xmlRegisterNodeDefaultValue = NULL;
- static xmlRegisterNodeFunc xmlRegisterNodeDefaultValueThrDef = NULL;
- xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue = NULL;
- static xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValueThrDef = NULL;
- xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue = NULL;
- static xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValueThrDef = NULL;
- xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue = NULL;
- static xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValueThrDef = NULL;
- /*
- * Error handling
- */
- /* xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc; */
- /* Must initialize xmlGenericError in xmlInitParser */
- void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED,
- const char *msg,
- ...);
- /**
- * xmlGenericError:
- *
- * Global setting: function used for generic error callbacks
- */
- xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc;
- static xmlGenericErrorFunc xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
- /**
- * xmlStructuredError:
- *
- * Global setting: function used for structured error callbacks
- */
- xmlStructuredErrorFunc xmlStructuredError = NULL;
- static xmlStructuredErrorFunc xmlStructuredErrorThrDef = NULL;
- /**
- * xmlGenericErrorContext:
- *
- * Global setting passed to generic error callbacks
- */
- void *xmlGenericErrorContext = NULL;
- static void *xmlGenericErrorContextThrDef = NULL;
- /**
- * xmlStructuredErrorContext:
- *
- * Global setting passed to structured error callbacks
- */
- void *xmlStructuredErrorContext = NULL;
- static void *xmlStructuredErrorContextThrDef = NULL;
- xmlError xmlLastError;
- /*
- * output defaults
- */
- /**
- * xmlIndentTreeOutput:
- *
- * Global setting, asking the serializer to indent the output tree by default
- * Enabled by default
- */
- int xmlIndentTreeOutput = 1;
- static int xmlIndentTreeOutputThrDef = 1;
- /**
- * xmlTreeIndentString:
- *
- * The string used to do one-level indent. By default is equal to " " (two spaces)
- */
- const char *xmlTreeIndentString = " ";
- static const char *xmlTreeIndentStringThrDef = " ";
- /**
- * xmlSaveNoEmptyTags:
- *
- * Global setting, asking the serializer to not output empty tags
- * as <empty/> but <empty></empty>. those two forms are indistinguishable
- * once parsed.
- * Disabled by default
- */
- int xmlSaveNoEmptyTags = 0;
- static int xmlSaveNoEmptyTagsThrDef = 0;
- #ifdef LIBXML_SAX1_ENABLED
- /**
- * xmlDefaultSAXHandler:
- *
- * Default SAX version1 handler for XML, builds the DOM tree
- */
- xmlSAXHandlerV1 xmlDefaultSAXHandler = {
- xmlSAX2InternalSubset,
- xmlSAX2IsStandalone,
- xmlSAX2HasInternalSubset,
- xmlSAX2HasExternalSubset,
- xmlSAX2ResolveEntity,
- xmlSAX2GetEntity,
- xmlSAX2EntityDecl,
- xmlSAX2NotationDecl,
- xmlSAX2AttributeDecl,
- xmlSAX2ElementDecl,
- xmlSAX2UnparsedEntityDecl,
- xmlSAX2SetDocumentLocator,
- xmlSAX2StartDocument,
- xmlSAX2EndDocument,
- xmlSAX2StartElement,
- xmlSAX2EndElement,
- xmlSAX2Reference,
- xmlSAX2Characters,
- xmlSAX2Characters,
- xmlSAX2ProcessingInstruction,
- xmlSAX2Comment,
- xmlParserWarning,
- xmlParserError,
- xmlParserError,
- xmlSAX2GetParameterEntity,
- xmlSAX2CDataBlock,
- xmlSAX2ExternalSubset,
- 0,
- };
- #endif /* LIBXML_SAX1_ENABLED */
- /**
- * xmlDefaultSAXLocator:
- *
- * The default SAX Locator
- * { getPublicId, getSystemId, getLineNumber, getColumnNumber}
- */
- xmlSAXLocator xmlDefaultSAXLocator = {
- xmlSAX2GetPublicId,
- xmlSAX2GetSystemId,
- xmlSAX2GetLineNumber,
- xmlSAX2GetColumnNumber
- };
- #ifdef LIBXML_HTML_ENABLED
- /**
- * htmlDefaultSAXHandler:
- *
- * Default old SAX v1 handler for HTML, builds the DOM tree
- */
- xmlSAXHandlerV1 htmlDefaultSAXHandler = {
- xmlSAX2InternalSubset,
- NULL,
- NULL,
- NULL,
- NULL,
- xmlSAX2GetEntity,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- xmlSAX2SetDocumentLocator,
- xmlSAX2StartDocument,
- xmlSAX2EndDocument,
- xmlSAX2StartElement,
- xmlSAX2EndElement,
- NULL,
- xmlSAX2Characters,
- xmlSAX2IgnorableWhitespace,
- xmlSAX2ProcessingInstruction,
- xmlSAX2Comment,
- xmlParserWarning,
- xmlParserError,
- xmlParserError,
- xmlSAX2GetParameterEntity,
- xmlSAX2CDataBlock,
- NULL,
- 0,
- };
- #endif /* LIBXML_HTML_ENABLED */
- #ifdef LIBXML_DOCB_ENABLED
- /**
- * docbDefaultSAXHandler:
- *
- * Default old SAX v1 handler for SGML DocBook, builds the DOM tree
- */
- xmlSAXHandlerV1 docbDefaultSAXHandler = {
- xmlSAX2InternalSubset,
- xmlSAX2IsStandalone,
- xmlSAX2HasInternalSubset,
- xmlSAX2HasExternalSubset,
- xmlSAX2ResolveEntity,
- xmlSAX2GetEntity,
- xmlSAX2EntityDecl,
- NULL,
- NULL,
- NULL,
- NULL,
- xmlSAX2SetDocumentLocator,
- xmlSAX2StartDocument,
- xmlSAX2EndDocument,
- xmlSAX2StartElement,
- xmlSAX2EndElement,
- xmlSAX2Reference,
- xmlSAX2Characters,
- xmlSAX2IgnorableWhitespace,
- NULL,
- xmlSAX2Comment,
- xmlParserWarning,
- xmlParserError,
- xmlParserError,
- xmlSAX2GetParameterEntity,
- NULL,
- NULL,
- 0,
- };
- #endif /* LIBXML_DOCB_ENABLED */
- /**
- * xmlInitializeGlobalState:
- * @gs: a pointer to a newly allocated global state
- *
- * xmlInitializeGlobalState() initialize a global state with all the
- * default values of the library.
- */
- void
- xmlInitializeGlobalState(xmlGlobalStatePtr gs)
- {
- #ifdef DEBUG_GLOBALS
- fprintf(stderr, "Initializing globals at %lu for thread %d\n",
- (unsigned long) gs, xmlGetThreadId());
- #endif
- /*
- * Perform initialization as required by libxml
- */
- if (xmlThrDefMutex == NULL)
- xmlInitGlobals();
- xmlMutexLock(xmlThrDefMutex);
- #if defined(LIBXML_DOCB_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
- initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
- #endif
- #if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
- inithtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler);
- #endif
- gs->oldXMLWDcompatibility = 0;
- gs->xmlBufferAllocScheme = xmlBufferAllocSchemeThrDef;
- gs->xmlDefaultBufferSize = xmlDefaultBufferSizeThrDef;
- #if defined(LIBXML_SAX1_ENABLED) && defined(LIBXML_LEGACY_ENABLED)
- initxmlDefaultSAXHandler(&gs->xmlDefaultSAXHandler, 1);
- #endif /* LIBXML_SAX1_ENABLED */
- gs->xmlDefaultSAXLocator.getPublicId = xmlSAX2GetPublicId;
- gs->xmlDefaultSAXLocator.getSystemId = xmlSAX2GetSystemId;
- gs->xmlDefaultSAXLocator.getLineNumber = xmlSAX2GetLineNumber;
- gs->xmlDefaultSAXLocator.getColumnNumber = xmlSAX2GetColumnNumber;
- gs->xmlDoValidityCheckingDefaultValue =
- xmlDoValidityCheckingDefaultValueThrDef;
- #if defined(DEBUG_MEMORY_LOCATION) | defined(DEBUG_MEMORY)
- gs->xmlFree = (xmlFreeFunc) xmlMemFree;
- gs->xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
- gs->xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
- gs->xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
- gs->xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
- #else
- gs->xmlFree = (xmlFreeFunc) free;
- gs->xmlMalloc = (xmlMallocFunc) malloc;
- gs->xmlMallocAtomic = (xmlMallocFunc) malloc;
- gs->xmlRealloc = (xmlReallocFunc) realloc;
- gs->xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
- #endif
- gs->xmlGetWarningsDefaultValue = xmlGetWarningsDefaultValueThrDef;
- gs->xmlIndentTreeOutput = xmlIndentTreeOutputThrDef;
- gs->xmlTreeIndentString = xmlTreeIndentStringThrDef;
- gs->xmlKeepBlanksDefaultValue = xmlKeepBlanksDefaultValueThrDef;
- gs->xmlLineNumbersDefaultValue = xmlLineNumbersDefaultValueThrDef;
- gs->xmlLoadExtDtdDefaultValue = xmlLoadExtDtdDefaultValueThrDef;
- gs->xmlParserDebugEntities = xmlParserDebugEntitiesThrDef;
- gs->xmlParserVersion = LIBXML_VERSION_STRING;
- gs->xmlPedanticParserDefaultValue = xmlPedanticParserDefaultValueThrDef;
- gs->xmlSaveNoEmptyTags = xmlSaveNoEmptyTagsThrDef;
- gs->xmlSubstituteEntitiesDefaultValue =
- xmlSubstituteEntitiesDefaultValueThrDef;
- gs->xmlGenericError = xmlGenericErrorThrDef;
- gs->xmlStructuredError = xmlStructuredErrorThrDef;
- gs->xmlGenericErrorContext = xmlGenericErrorContextThrDef;
- gs->xmlStructuredErrorContext = xmlStructuredErrorContextThrDef;
- gs->xmlRegisterNodeDefaultValue = xmlRegisterNodeDefaultValueThrDef;
- gs->xmlDeregisterNodeDefaultValue = xmlDeregisterNodeDefaultValueThrDef;
- gs->xmlParserInputBufferCreateFilenameValue = xmlParserInputBufferCreateFilenameValueThrDef;
- gs->xmlOutputBufferCreateFilenameValue = xmlOutputBufferCreateFilenameValueThrDef;
- memset(&gs->xmlLastError, 0, sizeof(xmlError));
- xmlMutexUnlock(xmlThrDefMutex);
- }
- /**
- * DOC_DISABLE : we ignore missing doc for the xmlThrDef functions,
- * those are really internal work
- */
- void
- xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) {
- xmlMutexLock(xmlThrDefMutex);
- xmlGenericErrorContextThrDef = ctx;
- if (handler != NULL)
- xmlGenericErrorThrDef = handler;
- else
- xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
- xmlMutexUnlock(xmlThrDefMutex);
- }
- void
- xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) {
- xmlMutexLock(xmlThrDefMutex);
- xmlStructuredErrorContextThrDef = ctx;
- xmlStructuredErrorThrDef = handler;
- xmlMutexUnlock(xmlThrDefMutex);
- }
- /**
- * xmlRegisterNodeDefault:
- * @func: function pointer to the new RegisterNodeFunc
- *
- * Registers a callback for node creation
- *
- * Returns the old value of the registration function
- */
- xmlRegisterNodeFunc
- xmlRegisterNodeDefault(xmlRegisterNodeFunc func)
- {
- xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue;
- __xmlRegisterCallbacks = 1;
- xmlRegisterNodeDefaultValue = func;
- return(old);
- }
- xmlRegisterNodeFunc
- xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func)
- {
- xmlRegisterNodeFunc old;
- xmlMutexLock(xmlThrDefMutex);
- old = xmlRegisterNodeDefaultValueThrDef;
- __xmlRegisterCallbacks = 1;
- xmlRegisterNodeDefaultValueThrDef = func;
- xmlMutexUnlock(xmlThrDefMutex);
- return(old);
- }
- /**
- * xmlDeregisterNodeDefault:
- * @func: function pointer to the new DeregisterNodeFunc
- *
- * Registers a callback for node destruction
- *
- * Returns the previous value of the deregistration function
- */
- xmlDeregisterNodeFunc
- xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)
- {
- xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue;
- __xmlRegisterCallbacks = 1;
- xmlDeregisterNodeDefaultValue = func;
- return(old);
- }
- xmlDeregisterNodeFunc
- xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)
- {
- xmlDeregisterNodeFunc old;
- xmlMutexLock(xmlThrDefMutex);
- old = xmlDeregisterNodeDefaultValueThrDef;
- __xmlRegisterCallbacks = 1;
- xmlDeregisterNodeDefaultValueThrDef = func;
- xmlMutexUnlock(xmlThrDefMutex);
- return(old);
- }
- xmlParserInputBufferCreateFilenameFunc
- xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func)
- {
- xmlParserInputBufferCreateFilenameFunc old;
- xmlMutexLock(xmlThrDefMutex);
- old = xmlParserInputBufferCreateFilenameValueThrDef;
- if (old == NULL) {
- old = __xmlParserInputBufferCreateFilename;
- }
- xmlParserInputBufferCreateFilenameValueThrDef = func;
- xmlMutexUnlock(xmlThrDefMutex);
- return(old);
- }
- xmlOutputBufferCreateFilenameFunc
- xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func)
- {
- xmlOutputBufferCreateFilenameFunc old;
- xmlMutexLock(xmlThrDefMutex);
- old = xmlOutputBufferCreateFilenameValueThrDef;
- #ifdef LIBXML_OUTPUT_ENABLED
- if (old == NULL) {
- old = __xmlOutputBufferCreateFilename;
- }
- #endif
- xmlOutputBufferCreateFilenameValueThrDef = func;
- xmlMutexUnlock(xmlThrDefMutex);
- return(old);
- }
- #ifdef LIBXML_DOCB_ENABLED
- #undef docbDefaultSAXHandler
- xmlSAXHandlerV1 *
- __docbDefaultSAXHandler(void) {
- if (IS_MAIN_THREAD)
- return (&docbDefaultSAXHandler);
- else
- return (&xmlGetGlobalState()->docbDefaultSAXHandler);
- }
- #endif
- #ifdef LIBXML_HTML_ENABLED
- #undef htmlDefaultSAXHandler
- xmlSAXHandlerV1 *
- __htmlDefaultSAXHandler(void) {
- if (IS_MAIN_THREAD)
- return (&htmlDefaultSAXHandler);
- else
- return (&xmlGetGlobalState()->htmlDefaultSAXHandler);
- }
- #endif
- #undef xmlLastError
- xmlError *
- __xmlLastError(void) {
- if (IS_MAIN_THREAD)
- return (&xmlLastError);
- else
- return (&xmlGetGlobalState()->xmlLastError);
- }
- /*
- * The following memory routines were apparently lost at some point,
- * and were re-inserted at this point on June 10, 2004. Hope it's
- * the right place for them :-)
- */
- #if defined(LIBXML_THREAD_ALLOC_ENABLED) && defined(LIBXML_THREAD_ENABLED)
- #undef xmlMalloc
- xmlMallocFunc *
- __xmlMalloc(void){
- if (IS_MAIN_THREAD)
- return (&xmlMalloc);
- else
- return (&xmlGetGlobalState()->xmlMalloc);
- }
- #undef xmlMallocAtomic
- xmlMallocFunc *
- __xmlMallocAtomic(void){
- if (IS_MAIN_THREAD)
- return (&xmlMallocAtomic);
- else
- return (&xmlGetGlobalState()->xmlMallocAtomic);
- }
- #undef xmlRealloc
- xmlReallocFunc *
- __xmlRealloc(void){
- if (IS_MAIN_THREAD)
- return (&xmlRealloc);
- else
- return (&xmlGetGlobalState()->xmlRealloc);
- }
- #undef xmlFree
- xmlFreeFunc *
- __xmlFree(void){
- if (IS_MAIN_THREAD)
- return (&xmlFree);
- else
- return (&xmlGetGlobalState()->xmlFree);
- }
- xmlStrdupFunc *
- __xmlMemStrdup(void){
- if (IS_MAIN_THREAD)
- return (&xmlMemStrdup);
- else
- return (&xmlGetGlobalState()->xmlMemStrdup);
- }
- #endif
- /*
- * Everything starting from the line below is
- * Automatically generated by build_glob.py.
- * Do not modify the previous line.
- */
- #undef oldXMLWDcompatibility
- int *
- __oldXMLWDcompatibility(void) {
- if (IS_MAIN_THREAD)
- return (&oldXMLWDcompatibility);
- else
- return (&xmlGetGlobalState()->oldXMLWDcompatibility);
- }
- #undef xmlBufferAllocScheme
- xmlBufferAllocationScheme *
- __xmlBufferAllocScheme(void) {
- if (IS_MAIN_THREAD)
- return (&xmlBufferAllocScheme);
- else
- return (&xmlGetGlobalState()->xmlBufferAllocScheme);
- }
- xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v) {
- xmlBufferAllocationScheme ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlBufferAllocSchemeThrDef;
- xmlBufferAllocSchemeThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlDefaultBufferSize
- int *
- __xmlDefaultBufferSize(void) {
- if (IS_MAIN_THREAD)
- return (&xmlDefaultBufferSize);
- else
- return (&xmlGetGlobalState()->xmlDefaultBufferSize);
- }
- int xmlThrDefDefaultBufferSize(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlDefaultBufferSizeThrDef;
- xmlDefaultBufferSizeThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #ifdef LIBXML_SAX1_ENABLED
- #undef xmlDefaultSAXHandler
- xmlSAXHandlerV1 *
- __xmlDefaultSAXHandler(void) {
- if (IS_MAIN_THREAD)
- return (&xmlDefaultSAXHandler);
- else
- return (&xmlGetGlobalState()->xmlDefaultSAXHandler);
- }
- #endif /* LIBXML_SAX1_ENABLED */
- #undef xmlDefaultSAXLocator
- xmlSAXLocator *
- __xmlDefaultSAXLocator(void) {
- if (IS_MAIN_THREAD)
- return (&xmlDefaultSAXLocator);
- else
- return (&xmlGetGlobalState()->xmlDefaultSAXLocator);
- }
- #undef xmlDoValidityCheckingDefaultValue
- int *
- __xmlDoValidityCheckingDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlDoValidityCheckingDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlDoValidityCheckingDefaultValue);
- }
- int xmlThrDefDoValidityCheckingDefaultValue(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlDoValidityCheckingDefaultValueThrDef;
- xmlDoValidityCheckingDefaultValueThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlGenericError
- xmlGenericErrorFunc * XMLCALL
- __xmlGenericError(void) {
- if (IS_MAIN_THREAD)
- return (&xmlGenericError);
- else
- return (&xmlGetGlobalState()->xmlGenericError);
- }
- #undef xmlStructuredError
- xmlStructuredErrorFunc *
- __xmlStructuredError(void) {
- if (IS_MAIN_THREAD)
- return (&xmlStructuredError);
- else
- return (&xmlGetGlobalState()->xmlStructuredError);
- }
- #undef xmlGenericErrorContext
- void * *
- __xmlGenericErrorContext(void) {
- if (IS_MAIN_THREAD)
- return (&xmlGenericErrorContext);
- else
- return (&xmlGetGlobalState()->xmlGenericErrorContext);
- }
- #undef xmlStructuredErrorContext
- void * *
- __xmlStructuredErrorContext(void) {
- if (IS_MAIN_THREAD)
- return (&xmlStructuredErrorContext);
- else
- return (&xmlGetGlobalState()->xmlStructuredErrorContext);
- }
- #undef xmlGetWarningsDefaultValue
- int *
- __xmlGetWarningsDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlGetWarningsDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlGetWarningsDefaultValue);
- }
- int xmlThrDefGetWarningsDefaultValue(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlGetWarningsDefaultValueThrDef;
- xmlGetWarningsDefaultValueThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlIndentTreeOutput
- int *
- __xmlIndentTreeOutput(void) {
- if (IS_MAIN_THREAD)
- return (&xmlIndentTreeOutput);
- else
- return (&xmlGetGlobalState()->xmlIndentTreeOutput);
- }
- int xmlThrDefIndentTreeOutput(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlIndentTreeOutputThrDef;
- xmlIndentTreeOutputThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlTreeIndentString
- const char * *
- __xmlTreeIndentString(void) {
- if (IS_MAIN_THREAD)
- return (&xmlTreeIndentString);
- else
- return (&xmlGetGlobalState()->xmlTreeIndentString);
- }
- const char * xmlThrDefTreeIndentString(const char * v) {
- const char * ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlTreeIndentStringThrDef;
- xmlTreeIndentStringThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlKeepBlanksDefaultValue
- int *
- __xmlKeepBlanksDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlKeepBlanksDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlKeepBlanksDefaultValue);
- }
- int xmlThrDefKeepBlanksDefaultValue(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlKeepBlanksDefaultValueThrDef;
- xmlKeepBlanksDefaultValueThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlLineNumbersDefaultValue
- int *
- __xmlLineNumbersDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlLineNumbersDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlLineNumbersDefaultValue);
- }
- int xmlThrDefLineNumbersDefaultValue(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlLineNumbersDefaultValueThrDef;
- xmlLineNumbersDefaultValueThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlLoadExtDtdDefaultValue
- int *
- __xmlLoadExtDtdDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlLoadExtDtdDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlLoadExtDtdDefaultValue);
- }
- int xmlThrDefLoadExtDtdDefaultValue(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlLoadExtDtdDefaultValueThrDef;
- xmlLoadExtDtdDefaultValueThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlParserDebugEntities
- int *
- __xmlParserDebugEntities(void) {
- if (IS_MAIN_THREAD)
- return (&xmlParserDebugEntities);
- else
- return (&xmlGetGlobalState()->xmlParserDebugEntities);
- }
- int xmlThrDefParserDebugEntities(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlParserDebugEntitiesThrDef;
- xmlParserDebugEntitiesThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlParserVersion
- const char * *
- __xmlParserVersion(void) {
- if (IS_MAIN_THREAD)
- return (&xmlParserVersion);
- else
- return (&xmlGetGlobalState()->xmlParserVersion);
- }
- #undef xmlPedanticParserDefaultValue
- int *
- __xmlPedanticParserDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlPedanticParserDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlPedanticParserDefaultValue);
- }
- int xmlThrDefPedanticParserDefaultValue(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlPedanticParserDefaultValueThrDef;
- xmlPedanticParserDefaultValueThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlSaveNoEmptyTags
- int *
- __xmlSaveNoEmptyTags(void) {
- if (IS_MAIN_THREAD)
- return (&xmlSaveNoEmptyTags);
- else
- return (&xmlGetGlobalState()->xmlSaveNoEmptyTags);
- }
- int xmlThrDefSaveNoEmptyTags(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlSaveNoEmptyTagsThrDef;
- xmlSaveNoEmptyTagsThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlSubstituteEntitiesDefaultValue
- int *
- __xmlSubstituteEntitiesDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlSubstituteEntitiesDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultValue);
- }
- int xmlThrDefSubstituteEntitiesDefaultValue(int v) {
- int ret;
- xmlMutexLock(xmlThrDefMutex);
- ret = xmlSubstituteEntitiesDefaultValueThrDef;
- xmlSubstituteEntitiesDefaultValueThrDef = v;
- xmlMutexUnlock(xmlThrDefMutex);
- return ret;
- }
- #undef xmlRegisterNodeDefaultValue
- xmlRegisterNodeFunc * XMLCALL
- __xmlRegisterNodeDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlRegisterNodeDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlRegisterNodeDefaultValue);
- }
- #undef xmlDeregisterNodeDefaultValue
- xmlDeregisterNodeFunc * XMLCALL
- __xmlDeregisterNodeDefaultValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlDeregisterNodeDefaultValue);
- else
- return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
- }
- #undef xmlParserInputBufferCreateFilenameValue
- xmlParserInputBufferCreateFilenameFunc * XMLCALL
- __xmlParserInputBufferCreateFilenameValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlParserInputBufferCreateFilenameValue);
- else
- return (&xmlGetGlobalState()->xmlParserInputBufferCreateFilenameValue);
- }
- #undef xmlOutputBufferCreateFilenameValue
- xmlOutputBufferCreateFilenameFunc * XMLCALL
- __xmlOutputBufferCreateFilenameValue(void) {
- if (IS_MAIN_THREAD)
- return (&xmlOutputBufferCreateFilenameValue);
- else
- return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
- }
- #define bottom_globals
- #include "elfgcchack.h"
|