diff options
Diffstat (limited to 'chromium/third_party/libxml/src/globals.c')
-rw-r--r-- | chromium/third_party/libxml/src/globals.c | 127 |
1 files changed, 64 insertions, 63 deletions
diff --git a/chromium/third_party/libxml/src/globals.c b/chromium/third_party/libxml/src/globals.c index 7e5c1aa9ef3..c3e10a76084 100644 --- a/chromium/third_party/libxml/src/globals.c +++ b/chromium/third_party/libxml/src/globals.c @@ -22,6 +22,7 @@ #include <libxml/threads.h> #include "private/error.h" +#include "private/globals.h" #include "private/threads.h" #include "private/tree.h" @@ -39,20 +40,24 @@ /* * Mutex to protect "ForNewThreads" variables */ -static xmlMutexPtr xmlThrDefMutex = NULL; +static xmlMutex xmlThrDefMutex; /** * xmlInitGlobals: * - * DEPRECATED: This function will be made private. Call xmlInitParser to - * initialize the library. + * DEPRECATED: Alias for xmlInitParser. + */ +void xmlInitGlobals(void) { + xmlInitParser(); +} + +/** + * xmlInitGlobalsInternal: * * Additional initialisation for multi-threading */ -void xmlInitGlobals(void) -{ - if (xmlThrDefMutex == NULL) - xmlThrDefMutex = xmlNewMutex(); +void xmlInitGlobalsInternal(void) { + xmlInitMutex(&xmlThrDefMutex); } /************************************************************************ @@ -427,7 +432,7 @@ xmlSAXHandlerV1 xmlDefaultSAXHandler = { xmlSAX2GetParameterEntity, xmlSAX2CDataBlock, xmlSAX2ExternalSubset, - 0, + 1, }; #endif /* LIBXML_SAX1_ENABLED */ @@ -480,10 +485,10 @@ xmlSAXHandlerV1 htmlDefaultSAXHandler = { xmlParserWarning, xmlParserError, xmlParserError, - xmlSAX2GetParameterEntity, + NULL, xmlSAX2CDataBlock, NULL, - 0, + 1, }; #endif /* LIBXML_HTML_ENABLED */ @@ -502,13 +507,7 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs) (void *) gs, xmlGetThreadId()); #endif - /* - * Perform initialization as required by libxml - */ - if (xmlThrDefMutex == NULL) - xmlInitGlobals(); - - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); #if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED) inithtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler); @@ -563,47 +562,49 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs) gs->xmlOutputBufferCreateFilenameValue = xmlOutputBufferCreateFilenameValueThrDef; memset(&gs->xmlLastError, 0, sizeof(xmlError)); - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); } /** * xmlCleanupGlobals: * - * DEPRECATED: This function will be made private. Call xmlCleanupParser + * DEPRECATED: This function is a no-op. Call xmlCleanupParser * to free global state but see the warnings there. xmlCleanupParser * should be only called once at program exit. In most cases, you don't * have call cleanup functions at all. + */ +void xmlCleanupGlobals(void) { +} + +/** + * xmlCleanupGlobalsInternal: * * Additional cleanup for multi-threading */ -void xmlCleanupGlobals(void) -{ +void xmlCleanupGlobalsInternal(void) { xmlResetError(&xmlLastError); - if (xmlThrDefMutex != NULL) { - xmlFreeMutex(xmlThrDefMutex); - xmlThrDefMutex = NULL; - } + xmlCleanupMutex(&xmlThrDefMutex); __xmlGlobalInitMutexDestroy(); } void xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) { - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); xmlGenericErrorContextThrDef = ctx; if (handler != NULL) xmlGenericErrorThrDef = handler; else xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); } void xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) { - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); xmlStructuredErrorContextThrDef = ctx; xmlStructuredErrorThrDef = handler; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); } /** @@ -629,12 +630,12 @@ xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func) { xmlRegisterNodeFunc old; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); old = xmlRegisterNodeDefaultValueThrDef; __xmlRegisterCallbacks = 1; xmlRegisterNodeDefaultValueThrDef = func; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return(old); } @@ -662,12 +663,12 @@ xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func) { xmlDeregisterNodeFunc old; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); old = xmlDeregisterNodeDefaultValueThrDef; __xmlRegisterCallbacks = 1; xmlDeregisterNodeDefaultValueThrDef = func; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return(old); } @@ -677,14 +678,14 @@ xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilena { xmlParserInputBufferCreateFilenameFunc old; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); old = xmlParserInputBufferCreateFilenameValueThrDef; if (old == NULL) { old = __xmlParserInputBufferCreateFilename; } xmlParserInputBufferCreateFilenameValueThrDef = func; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return(old); } @@ -694,7 +695,7 @@ xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc fun { xmlOutputBufferCreateFilenameFunc old; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); old = xmlOutputBufferCreateFilenameValueThrDef; #ifdef LIBXML_OUTPUT_ENABLED if (old == NULL) { @@ -702,7 +703,7 @@ xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc fun } #endif xmlOutputBufferCreateFilenameValueThrDef = func; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return(old); } @@ -805,10 +806,10 @@ __xmlBufferAllocScheme(void) { } xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v) { xmlBufferAllocationScheme ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlBufferAllocSchemeThrDef; xmlBufferAllocSchemeThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -822,10 +823,10 @@ __xmlDefaultBufferSize(void) { } int xmlThrDefDefaultBufferSize(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlDefaultBufferSizeThrDef; xmlDefaultBufferSizeThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -859,10 +860,10 @@ __xmlDoValidityCheckingDefaultValue(void) { } int xmlThrDefDoValidityCheckingDefaultValue(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlDoValidityCheckingDefaultValueThrDef; xmlDoValidityCheckingDefaultValueThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -912,10 +913,10 @@ __xmlGetWarningsDefaultValue(void) { } int xmlThrDefGetWarningsDefaultValue(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlGetWarningsDefaultValueThrDef; xmlGetWarningsDefaultValueThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -929,10 +930,10 @@ __xmlIndentTreeOutput(void) { } int xmlThrDefIndentTreeOutput(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlIndentTreeOutputThrDef; xmlIndentTreeOutputThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -946,10 +947,10 @@ __xmlTreeIndentString(void) { } const char * xmlThrDefTreeIndentString(const char * v) { const char * ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlTreeIndentStringThrDef; xmlTreeIndentStringThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -963,10 +964,10 @@ __xmlKeepBlanksDefaultValue(void) { } int xmlThrDefKeepBlanksDefaultValue(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlKeepBlanksDefaultValueThrDef; xmlKeepBlanksDefaultValueThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -980,10 +981,10 @@ __xmlLineNumbersDefaultValue(void) { } int xmlThrDefLineNumbersDefaultValue(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlLineNumbersDefaultValueThrDef; xmlLineNumbersDefaultValueThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -997,10 +998,10 @@ __xmlLoadExtDtdDefaultValue(void) { } int xmlThrDefLoadExtDtdDefaultValue(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlLoadExtDtdDefaultValueThrDef; xmlLoadExtDtdDefaultValueThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -1014,10 +1015,10 @@ __xmlParserDebugEntities(void) { } int xmlThrDefParserDebugEntities(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlParserDebugEntitiesThrDef; xmlParserDebugEntitiesThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -1040,10 +1041,10 @@ __xmlPedanticParserDefaultValue(void) { } int xmlThrDefPedanticParserDefaultValue(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlPedanticParserDefaultValueThrDef; xmlPedanticParserDefaultValueThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -1057,10 +1058,10 @@ __xmlSaveNoEmptyTags(void) { } int xmlThrDefSaveNoEmptyTags(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlSaveNoEmptyTagsThrDef; xmlSaveNoEmptyTagsThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } @@ -1074,10 +1075,10 @@ __xmlSubstituteEntitiesDefaultValue(void) { } int xmlThrDefSubstituteEntitiesDefaultValue(int v) { int ret; - xmlMutexLock(xmlThrDefMutex); + xmlMutexLock(&xmlThrDefMutex); ret = xmlSubstituteEntitiesDefaultValueThrDef; xmlSubstituteEntitiesDefaultValueThrDef = v; - xmlMutexUnlock(xmlThrDefMutex); + xmlMutexUnlock(&xmlThrDefMutex); return ret; } |