webengine/osswebengine/WebCore/platform/symbian/Libxml2/Libxml2_globals.c
changeset 0 dd21522fd290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebCore/platform/symbian/Libxml2/Libxml2_globals.c	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,649 @@
+/*
+ * 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 "XmlEnglibxml.h"
+
+#include <assert.h>
+
+//#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+//#endif
+
+#include <string.h>
+
+#include "Libxml2_globals.h"
+//#include "Libxml2_xmlmemory.h"
+//#include "Libxml2_threads.h"
+
+// TODO: provide optimized alternative that receives xmlDocPtr for use of cached xmlGlobalStatePtr
+int xmlOOMFlag()
+    {
+#ifdef _DEBUG
+    int f = OOM_FLAG;
+    if(f)
+        {
+        f |= 0; // SET BREAKPOINT HERE
+        }
+    return f;
+#else
+    return OOM_FLAG;
+#endif
+    }
+
+void xmlSetOOM()
+    {
+    OOM_FLAG = 1;
+    }
+
+void xmlResetOOM()
+    {
+    // We need this in case OOM happened during initialization of global state
+    if (!xeGetTLS())
+        return;
+    OOM_FLAG = 0;
+    }
+
+
+#define __lookup_ALLOC_ADDRES_ 0x23561e8
+
+/*
+ NOTE: XMLENGINE_MEM_DEBUG option is defined only in debug builds
+*/
+void* malloc_impl(size_t size)
+{
+    xmlGlobalStatePtr gs; // is needed only during OOM
+
+    void* mem = malloc(size);
+#ifdef XMLENGINE_MEM_DEBUG
+    if((int)mem == __lookup_ALLOC_ADDRES_) {
+        size &= -1; // Set breakpoint here
+    }
+#endif
+    if(!mem)
+        {
+        gs = xeGetTLS();
+        if(gs)
+            xmlOOM = 1;
+        }
+#ifdef XMLENGINE_MEM_DEBUG
+    else
+        {
+        gs = xeGetTLS();
+        if(gs && !xmlOOM) // do not count "after allocations" during error-handling
+            gs->allocCount++;
+        }
+#endif
+
+    return mem;
+}
+
+#ifdef XMLENGINE_MEM_DEBUG
+void free_debug(void* mem)
+{
+	if(mem)
+		{
+	    if((int)mem == __lookup_ALLOC_ADDRES_) 
+	    	{
+	        *(int*)mem &= -1; // Set breakpoint here
+	    	}
+	    free(mem);
+		}
+}
+#endif
+
+#ifdef XMLENGINE_EXCLUDE_EMBED_MSG
+const char* const __embedded_errtxt_replacement = "DISABLED ERROR STRING\n";
+#endif
+
+void xeCleanupDOMStringConverter()
+{
+#if defined (XMLENGINE_USE_DOMSTRINGARGUMENT)
+    DOMStringConverterData* data = &xmlGetGlobalState()->xeStringArgs;
+    char** buf;
+    int i;
+    for(i=0; i<4; i++){
+        buf = &data->cleanupItem[i];
+        if(*buf){
+            xmlFree(*buf);
+            *buf = 0;
+        }
+    }
+#endif /* XMLENGINE_USE_DOMSTRINGARGUMENT*/
+}
+//static
+//inline
+int symbian_vsnprintf(char *str, size_t size, const char *format, va_list ap)
+{
+    int ret = 0;
+
+    ret = vsprintf(str, format, ap);
+
+    assert((size_t)ret < size);
+    return ret;
+}
+
+//static
+//inline
+int symbian_snprintf(char *str, size_t size, const char *format, ...)
+{
+    int ret = 0;
+    va_list args;
+    va_start(args, format);
+    symbian_vsnprintf(str, size, format, args);
+    va_end(args);
+
+    assert((size_t)ret < size);
+
+    return ret;
+}
+
+#include "Libxml2_SAX.h"
+
+/**
+ * xmlTreeIndentString:
+ *
+ * The string used to do one-level indent. By default is equal to "  " (two spaces)
+ */
+const char* const xmlTreeIndentString = "  ";
+static const char* const xmlTreeIndentStringThrDef = "  ";
+
+
+/**
+ * xmlParserVersion:
+ *
+ * Constant string describing the internal version of the library
+ */
+const char* const xmlParserVersion = LIBXML_VERSION_STRING;
+
+
+xmlRegisterNodeFunc
+xmlRegisterNodeDefault(xmlRegisterNodeFunc func)
+{
+    xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue;
+
+    __xmlRegisterCallbacks = 1;
+    xmlRegisterNodeDefaultValue = func;
+    return(old);
+}
+
+xmlDeregisterNodeFunc
+xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)
+{
+    xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue;
+
+    __xmlRegisterCallbacks = 1;
+    xmlDeregisterNodeDefaultValue = func;
+    return(old);
+}
+
+//TODO: make "features" of XML Engine from all these settings
+#define xmlBufferAllocSchemeThrDef XML_BUFFER_ALLOC_EXACT
+#define xmlDefaultBufferSizeThrDef BASE_BUFFER_SIZE
+#define xmlParserDebugEntitiesThrDef 0
+#define xmlDoValidityCheckingDefaultValueThrDef 0
+#define xmlGetWarningsDefaultValueThrDef 1
+#define xmlLoadExtDtdDefaultValueThrDef 0
+#define xmlPedanticParserDefaultValueThrDef 0
+#define xmlLineNumbersDefaultValueThrDef 0
+#define xmlKeepBlanksDefaultValueThrDef 1
+#define xmlSubstituteEntitiesDefaultValueThrDef 0
+#define xmlRegisterNodeDefaultValueThrDef NULL
+#define xmlDeregisterNodeDefaultValueThrDef NULL
+
+
+void xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED, const char *msg, ...);
+
+#define xmlGenericErrorThrDef  xmlGenericErrorDefaultFunc
+#define xmlStructuredErrorThrDef  NULL
+#define xmlGenericErrorContextThrDef NULL
+#define xmlIndentTreeOutputThrDef 1
+#define xmlTreeIndentStringThrDef "  "
+#define xmlSaveNoEmptyTagsThrDef 0
+
+#undef  docbDefaultSAXHandler
+#undef  htmlDefaultSAXHandler
+#undef  xmlBufferAllocScheme
+#undef  xmlDefaultBufferSize
+#undef  xmlDefaultSAXHandler
+#undef  xmlDefaultSAXLocator
+#undef  xmlDoValidityCheckingDefaultValue
+#undef  xmlGenericError
+#undef  xmlStructuredError
+#undef  xmlGenericErrorContext
+#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  xmlFree
+#undef  xmlMalloc
+#undef  xmlMallocAtomic
+#undef  xmlMemStrdup
+#undef  xmlRealloc
+
+// merge:agathe  have to check that this is useful
+#undef  htmlStartCloseIndex
+#undef  htmlStartCloseIndexinitialized
+
+/* tree */
+#undef __xmlRegisterCallbacks
+#undef xmlCompressMode
+#undef xmlCheckDTD
+
+/* xmlmemory */
+#undef xmlMemInitialized
+#undef debugMemSize
+#undef debugMaxMemSize
+#undef xmlMemMutex
+#undef block
+#undef xmlMemStopAtBlock
+#undef xmlMemTraceBlockAt
+
+
+/* catalog */
+#undef  xmlDebugCatalogs
+#undef  xmlCatalogDefaultAllow
+#undef  xmlCatalogDefaultPrefer
+#undef  xmlCatalogXMLFiles
+#undef  xmlDefaultCatalog
+#undef  xmlCatalogMutex
+#undef  xmlCatalogInitialized
+
+#undef  xmlInputCallbackTable
+#undef  xmlInputCallbackNr
+#undef  xmlInputCallbackInitialized
+#undef  xmlOutputCallbackTable
+#undef  xmlOutputCallbackNr
+#undef  xmlOutputCallbackInitialized
+//#undef  IOerr
+#undef xmlCurrentExternalEntityLoader
+
+#undef xmlSAX2DefaultVersionValue
+
+#undef xmlParserMaxDepth
+#undef xmlW3CPIs
+#undef xmlParserInitialized
+
+#undef xeStackLimit
+
+//#undef xmlEntityLt
+//#undef xmlEntityGt
+//#undef xmlEntityAmp
+//#undef xmlEntityQuot
+//#undef xmlEntityApos
+
+#undef xmlUTF16LEHandler
+#undef xmlUTF16BEHandler
+#undef xmlCharEncodingAliases
+#undef xmlCharEncodingAliasesNb
+#undef xmlCharEncodingAliasesMax
+#undef xmlLittleEndian
+#undef handlers
+#undef nbCharEncodingHandler
+#undef xmlDefaultCharEncodingHandler
+
+#undef xmlXPathNAN
+#undef xmlXPathPINF
+#undef xmlXPathNINF
+#undef xmlXPathNZERO
+#undef xmlXPathInitialized
+
+#ifndef LIBXML_THREAD_ENABLED
+#   undef xmlXPathDisableOptimizer
+#endif
+
+#ifdef XMLENGINE_XPATH_FUNC_HASH_OPTIMIZED
+#   undef xmlXPathDefineExtensionFunctionsGlobally
+#   undef xmlXPathDefaultFunctionsHash
+#   undef xmlXPathIntermediaryExtensionFunctionsHash
+#endif
+
+#undef xlinkDefaultHandler
+#undef xlinkDefaultDetect
+
+#undef had_info
+#undef xmlInputStreamId
+
+#undef xeUserCount
+
+/* XMLENGINE_XSLT */
+#undef calibration
+#undef default_token
+#undef xsltExtensionsHash
+#undef xsltFunctionsHash
+#undef xsltElementsHash
+#undef xsltTopLevelsHash
+#undef xsltDebuggerCurrentCallbacks
+
+#ifdef LIBXML_SAX1_ENABLED
+/**
+ * xmlDefaultSAXHandler:
+ *
+ * Default SAX version1 handler for XML, builds the DOM tree
+ */
+const 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}
+ */
+const xmlSAXLocator xmlDefaultSAXLocator = {
+    xmlSAX2GetPublicId,
+    xmlSAX2GetSystemId,
+    xmlSAX2GetLineNumber,
+    xmlSAX2GetColumnNumber
+};
+
+#ifdef LIBXML_HTML_ENABLED
+/**
+ * htmlDefaultSAXHandler:
+ *
+ * Default old SAX v1 handler for HTML, builds the DOM tree
+ */
+const xmlSAXHandlerV1 htmlDefaultSAXHandler = {
+    xmlSAX2InternalSubset,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    xmlSAX2GetEntity,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    xmlSAX2SetDocumentLocator,
+    xmlSAX2StartDocument,
+    xmlSAX2EndDocument,
+    xmlSAX2StartElement,
+    xmlSAX2EndElement,
+    NULL,
+    xmlSAX2Characters,
+    xmlSAX2IgnorableWhitespace,
+    NULL,
+    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
+ */
+const 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, xmlLinAddress stackLimit)
+{
+
+#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);
+
+#ifdef LIBXML_DOCB_ENABLED
+    xmlSAX2InitDocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
+#endif
+#ifdef LIBXML_HTML_ENABLED
+    //TODO: Find out do we need this or not
+    //xmlSAX2InitHtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler);
+#endif
+// merge: agathe: I had removed this code for libxslt...
+//#ifdef LIBXML_DOCB_ENABLED
+//    initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
+//#endif
+
+//#ifdef LIBXML_HTML_ENABLED
+    //inithtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler);
+//#endif
+
+    gs->xmlBufferAllocScheme = xmlBufferAllocSchemeThrDef;
+    gs->xmlDefaultBufferSize = xmlDefaultBufferSizeThrDef;
+#ifdef LIBXML_SAX1_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->xmlFreeFn         = (xmlFreeFunc)    xmlMemFree;
+    gs->xmlMallocFn       = (xmlMallocFunc)  xmlMemMalloc;
+    gs->xmlMallocAtomicFn = (xmlMallocFunc)  xmlMemMalloc;
+    gs->xmlReallocFn      = (xmlReallocFunc) xmlMemRealloc;
+    gs->xmlMemStrdupFn    = (xmlStrdupFunc)  xmlMemoryStrdup;
+#else
+
+    gs->xmlMallocFn       = (xmlMallocFunc)  malloc_impl;
+#ifdef XMLENGINE_MEM_DEBUG
+    gs->xmlFreeFn         = (xmlFreeFunc)    free_debug;
+#else
+    gs->xmlFreeFn         = (xmlFreeFunc)    free;
+#endif
+
+    gs->xmlMallocAtomicFn = (xmlMallocFunc)  malloc;
+    gs->xmlReallocFn      = (xmlReallocFunc) realloc;
+    gs->xmlMemStrdupFn    = (xmlStrdupFunc)  xmlStrdup;
+#endif /* DEBUG_MEMORY */
+
+    gs->xmlGetWarningsDefaultValue = xmlGetWarningsDefaultValueThrDef;
+    gs->xmlIndentTreeOutput = xmlIndentTreeOutputThrDef;
+//    gs->xmlTreeIndentString = xmlTreeIndentStringThrDef;
+    gs->xmlKeepBlanksDefaultValue = xmlKeepBlanksDefaultValueThrDef;
+#ifdef LIBXML_ENABLE_NODE_LINEINFO
+    gs->xmlLineNumbersDefaultValue = xmlLineNumbersDefaultValueThrDef;
+#endif
+    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->xmlRegisterNodeDefaultValue = xmlRegisterNodeDefaultValueThrDef;
+    gs->xmlDeregisterNodeDefaultValue = xmlDeregisterNodeDefaultValueThrDef;
+    memset(&gs->xmlLastError, 0, sizeof(xmlError));
+
+// ==================================================
+// XMLENEGINE: NOTE: All zero values are commented,
+//  since the whole structure is set to zeros prior
+//  initialization
+// ==================================================
+
+//  gs->had_info = 0;
+
+//  gs->xmlInputStreamId = 0;
+
+//  gs->xmlUTF16LEHandler = NULL;
+//  gs->xmlUTF16BEHandler = NULL;
+//  gs->xmlCharEncodingAliases = NULL;
+//  gs->xmlCharEncodingAliasesNb = 0;
+//  gs->xmlCharEncodingAliasesMax = 0;
+    gs->xmlLittleEndian = 1;
+//  gs->handlers = NULL;
+//  gs->nbCharEncodingHandler = 0;
+//  gs->xmlDefaultCharEncodingHandler = NULL;
+
+    gs->xmlParserMaxDepth = 1024;
+    gs->xmlW3CPIs[0] = "xml-stylesheet";
+    gs->xmlW3CPIs[1] = NULL;
+//  gs->xmlParserInitialized = 0;
+
+	gs->xeStackLimit = stackLimit;
+
+    gs->xmlSAX2DefaultVersionValue = 2;
+
+//  gs->xmlInputCallbackNr = 0;
+//  gs->xmlInputCallbackInitialized = 0;
+
+#ifdef LIBXML_OUTPUT_ENABLED
+//  gs->xmlOutputCallbackNr = 0;
+//  gs->xmlOutputCallbackInitialized = 0;
+#endif /* LIBXML_OUTPUT_ENABLED*/
+
+    gs->xmlCurrentExternalEntityLoader = xmlDefaultExternalEntityLoader;
+
+//  gs->xmlMemInitialized = 0;
+//  gs->debugMemSize = 0;
+//  gs->debugMaxMemSize = 0;
+//  gs->xmlMemMutex = NULL;
+//  gs->block = 0;
+//  gs->xmlMemStopAtBlock = 0;
+//  gs->xmlMemTraceBlockAt = NULL;
+
+//#ifdef LIBXML_TREE_ENABLED
+//  gs->__xmlRegisterCallbacks = 0;
+//#endif
+#ifdef LIBXML_TREE_ENABLED
+    // TODO: Are these constants? If yes then move them away from here!
+//  gs->xmlCompressMode = 0;
+    gs->xmlCheckDTD = 1;
+#endif
+
+#ifdef LIBXML_CATALOG_ENABLED
+//  gs->xmlDebugCatalogs = 0;
+    gs->xmlCatalogDefaultAllow = XML_CATA_ALLOW_ALL;
+    gs->xmlCatalogDefaultPrefer = XML_CATA_PREFER_PUBLIC;
+//  gs->xmlCatalogXMLFiles = NULL;
+//  gs->xmlDefaultCatalog = NULL;
+//  xmlCatalogMutex = NULL;
+//  gs->xmlCatalogInitialized = 0;
+#endif
+
+#ifdef LIBXML_XPATH_ENABLED
+//  gs->xmlXPathNAN = 0;
+    gs->xmlXPathPINF = 1;
+    gs->xmlXPathNINF = -1;
+//  gs->xmlXPathNZERO = 0;
+//  gs->xmlXPathInitialized = 0;
+#ifndef LIBXML_THREAD_ENABLED
+//  gs->xmlXPathDisableOptimizer = 0;
+#endif
+#   ifdef XMLENGINE_XPATH_FUNC_HASH_OPTIMIZED
+    gs->xmlXPathDefineExtensionFunctionsGlobally = 1;
+//  gs->xmlXPathDefaultFunctionsHash = NULL;
+//  gs->xmlXPathIntermediaryExtensionFunctionsHash = NULL;
+#   endif
+#endif
+
+#ifdef LIBXML_XPTR_ENABLED
+//  gs->xlinkDefaultHandler = NULL;
+//  gs->xlinkDefaultDetect = NULL;
+#endif
+
+    xmlMutexUnlock(xmlThrDefMutex);
+
+    // gs->xmlOOM = gs->xeUserCount = 0; //
+}