summaryrefslogtreecommitdiff
path: root/globals.c
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>2003-01-01 20:59:38 +0000
committerDaniel Veillard <veillard@src.gnome.org>2003-01-01 20:59:38 +0000
commit5335dc52afb3400b469264d758be01af84e4cfb0 (patch)
treeac4349e07217df8fe9bea36e06ef0a563954248f /globals.c
parent8ba1741abd991f8ab885f9fe1cecb69cf259f84f (diff)
downloadlibxml2-5335dc52afb3400b469264d758be01af84e4cfb0.tar.gz
applied an old patch from Lukas Schroeder to track node creation and
* global.data globals.c tree.c include/libxml/globals.h: applied an old patch from Lukas Schroeder to track node creation and destruction. Probably missing a lot of references at the moment and not usable reliably. Daniel
Diffstat (limited to 'globals.c')
-rw-r--r--globals.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/globals.c b/globals.c
index 72865c32..72446929 100644
--- a/globals.c
+++ b/globals.c
@@ -219,6 +219,9 @@ int xmlKeepBlanksDefaultValue = 1;
*/
int xmlSubstituteEntitiesDefaultValue = 0;
+xmlRegisterNodeFunc xmlRegisterNodeDefaultValue = NULL;
+xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue = NULL;
+
/*
* Error handling
*/
@@ -450,8 +453,40 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs)
gs->xmlPedanticParserDefaultValue = 0;
gs->xmlSaveNoEmptyTags = 0;
gs->xmlSubstituteEntitiesDefaultValue = 0;
+
+ gs->xmlRegisterNodeDefaultValue = NULL;
+ gs->xmlDeregisterNodeDefaultValue = NULL;
+}
+
+/**
+ * xmlRegisterNodeDefault
+ * @func: function pointer to the new RegisterNodeFunc
+ *
+ */
+xmlRegisterNodeFunc
+xmlRegisterNodeDefault(xmlRegisterNodeFunc func)
+{
+ xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue;
+
+ xmlRegisterNodeDefaultValue = func;
+ return(old);
}
+/**
+ * xmlDeegisterNodeDefault
+ * @func: function pointer to the new DeregisterNodeFunc
+ *
+ */
+xmlDeregisterNodeFunc
+xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)
+{
+ xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue;
+
+ xmlDeregisterNodeDefaultValue = func;
+ return(old);
+}
+
+
#ifdef LIBXML_DOCB_ENABLED
#undef docbDefaultSAXHandler
xmlSAXHandler *
@@ -651,3 +686,21 @@ __xmlSubstituteEntitiesDefaultValue(void) {
else
return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultValue);
}
+
+#undef xmlRegisterNodeDefaultValue
+xmlRegisterNodeFunc *
+__xmlRegisterNodeDefaultValue(void) {
+ if (IS_MAIN_THREAD)
+ return (&xmlRegisterNodeDefaultValue);
+ else
+ return (&xmlGetGlobalState()->xmlRegisterNodeDefaultValue);
+}
+
+#undef xmlDeregisterNodeDefaultValue
+xmlDeregisterNodeFunc *
+__xmlDeregisterNodeDefaultValue(void) {
+ if (IS_MAIN_THREAD)
+ return (&xmlDeregisterNodeDefaultValue);
+ else
+ return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
+}