Applied the last patches from Gary, cleanup, activated threading all user
* include/libxml/SAX.h include/libxml/globals.h include/libxml/parser.h
include/libxml/parserInternals.h include/libxml/tree.h
include/libxml/xmlerror.h HTMLparser.c SAX.c error.c globals.c
nanoftp.c nanohttp.c parser.c parserInternals.c testDocbook.c
testHTML.c testSAX.c tree.c uri.c xlink.c xmlmemory.c:
Applied the last patches from Gary, cleanup, activated threading
all user accessible global variables are now handled in globals.[ch]
Still a bit rought but make tests passes with either
--with-threads defined at configure time or not.
* Makefile.am example/Makefile.am: added globals.[ch] and threads
linking options
Daniel
diff --git a/globals.c b/globals.c
index c509287..6872017 100644
--- a/globals.c
+++ b/globals.c
@@ -13,8 +13,7 @@
#include "libxml.h"
-#include <libxml/threads.h>
-#include <libxml/globals.h>
+#include <libxml/xmlmemory.h>
/*
* Helpful Macro
@@ -38,10 +37,16 @@
************************************************************************/
const char *xmlParserVersion = LIBXML_VERSION_STRING;
+
/*
* Memory allocation routines
*/
#if defined(DEBUG_MEMORY_LOCATION) | defined(DEBUG_MEMORY)
+extern void xmlMemFree(void *ptr);
+extern void * xmlMemMalloc(size_t size);
+extern void * xmlMemRealloc(void *ptr,size_t size);
+extern char * xmlMemoryStrdup(const char *str);
+
xmlFreeFunc xmlFree = (xmlFreeFunc) xmlMemFree;
xmlMallocFunc xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
xmlReallocFunc xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
@@ -53,6 +58,36 @@
xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) strdup;
#endif
+#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 xmlGenericErrorContext
+#undef xmlGetWarningsDefaultValue
+#undef xmlIndentTreeOutput
+#undef xmlKeepBlanksDefaultValue
+#undef xmlLineNumbersDefaultValue
+#undef xmlLoadExtDtdDefaultValue
+#undef xmlParserDebugEntities
+#undef xmlParserVersion
+#undef xmlPedanticParserDefaultValue
+#undef xmlSaveNoEmptyTags
+#undef xmlSubstituteEntitiesDefaultValue
+
+#undef xmlFree
+#undef xmlMalloc
+#undef xmlMemStrdup
+#undef xmlRealloc
+
/*
* Buffers stuff
*/
@@ -62,6 +97,7 @@
/*
* Parser defaults
*/
+
int oldXMLWDcompatibility = 0; /* DEPRECATED */
int xmlParserDebugEntities = 0;
int xmlDoValidityCheckingDefaultValue = 0;
@@ -264,7 +300,7 @@
if (IS_MAIN_THREAD)
return (&docbDefaultSAXHandler);
else
- return (&get_glob_struct()->docbDefaultSAXHandler);
+ return (&xmlGetGlobalState()->docbDefaultSAXHandler);
}
extern xmlSAXHandler htmlDefaultSAXHandler;
@@ -274,7 +310,7 @@
if (IS_MAIN_THREAD)
return (&htmlDefaultSAXHandler);
else
- return (&get_glob_struct()->htmlDefaultSAXHandler);
+ return (&xmlGetGlobalState()->htmlDefaultSAXHandler);
}
extern int oldXMLWDcompatibility;
@@ -284,7 +320,7 @@
if (IS_MAIN_THREAD)
return (&oldXMLWDcompatibility);
else
- return (&get_glob_struct()->oldXMLWDcompatibility);
+ return (&xmlGetGlobalState()->oldXMLWDcompatibility);
}
extern xmlBufferAllocationScheme xmlBufferAllocScheme;
@@ -294,7 +330,7 @@
if (IS_MAIN_THREAD)
return (&xmlBufferAllocScheme);
else
- return (&get_glob_struct()->xmlBufferAllocScheme);
+ return (&xmlGetGlobalState()->xmlBufferAllocScheme);
}
extern int xmlDefaultBufferSize;
@@ -304,7 +340,7 @@
if (IS_MAIN_THREAD)
return (&xmlDefaultBufferSize);
else
- return (&get_glob_struct()->xmlDefaultBufferSize);
+ return (&xmlGetGlobalState()->xmlDefaultBufferSize);
}
extern xmlSAXHandler xmlDefaultSAXHandler;
@@ -314,7 +350,7 @@
if (IS_MAIN_THREAD)
return (&xmlDefaultSAXHandler);
else
- return (&get_glob_struct()->xmlDefaultSAXHandler);
+ return (&xmlGetGlobalState()->xmlDefaultSAXHandler);
}
extern xmlSAXLocator xmlDefaultSAXLocator;
@@ -324,7 +360,7 @@
if (IS_MAIN_THREAD)
return (&xmlDefaultSAXLocator);
else
- return (&get_glob_struct()->xmlDefaultSAXLocator);
+ return (&xmlGetGlobalState()->xmlDefaultSAXLocator);
}
extern int xmlDoValidityCheckingDefaultValue;
@@ -334,7 +370,7 @@
if (IS_MAIN_THREAD)
return (&xmlDoValidityCheckingDefaultValue);
else
- return (&get_glob_struct()->xmlDoValidityCheckingDefaultValue);
+ return (&xmlGetGlobalState()->xmlDoValidityCheckingDefaultValue);
}
extern xmlFreeFunc xmlFree;
@@ -344,7 +380,7 @@
if (IS_MAIN_THREAD)
return (&xmlFree);
else
- return (&get_glob_struct()->xmlFree);
+ return (&xmlGetGlobalState()->xmlFree);
}
extern xmlGenericErrorFunc xmlGenericError;
@@ -354,7 +390,7 @@
if (IS_MAIN_THREAD)
return (&xmlGenericError);
else
- return (&get_glob_struct()->xmlGenericError);
+ return (&xmlGetGlobalState()->xmlGenericError);
}
extern void * xmlGenericErrorContext;
@@ -364,7 +400,7 @@
if (IS_MAIN_THREAD)
return (&xmlGenericErrorContext);
else
- return (&get_glob_struct()->xmlGenericErrorContext);
+ return (&xmlGetGlobalState()->xmlGenericErrorContext);
}
extern int xmlGetWarningsDefaultValue;
@@ -374,7 +410,7 @@
if (IS_MAIN_THREAD)
return (&xmlGetWarningsDefaultValue);
else
- return (&get_glob_struct()->xmlGetWarningsDefaultValue);
+ return (&xmlGetGlobalState()->xmlGetWarningsDefaultValue);
}
extern int xmlIndentTreeOutput;
@@ -384,7 +420,7 @@
if (IS_MAIN_THREAD)
return (&xmlIndentTreeOutput);
else
- return (&get_glob_struct()->xmlIndentTreeOutput);
+ return (&xmlGetGlobalState()->xmlIndentTreeOutput);
}
extern int xmlKeepBlanksDefaultValue;
@@ -394,7 +430,7 @@
if (IS_MAIN_THREAD)
return (&xmlKeepBlanksDefaultValue);
else
- return (&get_glob_struct()->xmlKeepBlanksDefaultValue);
+ return (&xmlGetGlobalState()->xmlKeepBlanksDefaultValue);
}
extern int xmlLineNumbersDefaultValue;
@@ -404,7 +440,7 @@
if (IS_MAIN_THREAD)
return (&xmlLineNumbersDefaultValue);
else
- return (&get_glob_struct()->xmlLineNumbersDefaultValue);
+ return (&xmlGetGlobalState()->xmlLineNumbersDefaultValue);
}
extern int xmlLoadExtDtdDefaultValue;
@@ -414,7 +450,7 @@
if (IS_MAIN_THREAD)
return (&xmlLoadExtDtdDefaultValue);
else
- return (&get_glob_struct()->xmlLoadExtDtdDefaultValue);
+ return (&xmlGetGlobalState()->xmlLoadExtDtdDefaultValue);
}
extern xmlMallocFunc xmlMalloc;
@@ -424,7 +460,7 @@
if (IS_MAIN_THREAD)
return (&xmlMalloc);
else
- return (&get_glob_struct()->xmlMalloc);
+ return (&xmlGetGlobalState()->xmlMalloc);
}
extern xmlStrdupFunc xmlMemStrdup;
@@ -434,7 +470,7 @@
if (IS_MAIN_THREAD)
return (&xmlMemStrdup);
else
- return (&get_glob_struct()->xmlMemStrdup);
+ return (&xmlGetGlobalState()->xmlMemStrdup);
}
extern int xmlParserDebugEntities;
@@ -444,7 +480,7 @@
if (IS_MAIN_THREAD)
return (&xmlParserDebugEntities);
else
- return (&get_glob_struct()->xmlParserDebugEntities);
+ return (&xmlGetGlobalState()->xmlParserDebugEntities);
}
extern const char * xmlParserVersion;
@@ -454,7 +490,7 @@
if (IS_MAIN_THREAD)
return (&xmlParserVersion);
else
- return (&get_glob_struct()->xmlParserVersion);
+ return (&xmlGetGlobalState()->xmlParserVersion);
}
extern int xmlPedanticParserDefaultValue;
@@ -464,7 +500,7 @@
if (IS_MAIN_THREAD)
return (&xmlPedanticParserDefaultValue);
else
- return (&get_glob_struct()->xmlPedanticParserDefaultValue);
+ return (&xmlGetGlobalState()->xmlPedanticParserDefaultValue);
}
extern xmlReallocFunc xmlRealloc;
@@ -474,7 +510,7 @@
if (IS_MAIN_THREAD)
return (&xmlRealloc);
else
- return (&get_glob_struct()->xmlRealloc);
+ return (&xmlGetGlobalState()->xmlRealloc);
}
extern int xmlSaveNoEmptyTags;
@@ -484,7 +520,7 @@
if (IS_MAIN_THREAD)
return (&xmlSaveNoEmptyTags);
else
- return (&get_glob_struct()->xmlSaveNoEmptyTags);
+ return (&xmlGetGlobalState()->xmlSaveNoEmptyTags);
}
extern int xmlSubstituteEntitiesDefaultValue;
@@ -494,5 +530,5 @@
if (IS_MAIN_THREAD)
return (&xmlSubstituteEntitiesDefaultValue);
else
- return (&get_glob_struct()->xmlSubstituteEntitiesDefaultValue);
+ return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultValue);
}