diff options
author | Daniel Veillard <veillard@src.gnome.org> | 2003-01-01 20:59:38 +0000 |
---|---|---|
committer | Daniel Veillard <veillard@src.gnome.org> | 2003-01-01 20:59:38 +0000 |
commit | 5335dc52afb3400b469264d758be01af84e4cfb0 (patch) | |
tree | ac4349e07217df8fe9bea36e06ef0a563954248f /globals.c | |
parent | 8ba1741abd991f8ab885f9fe1cecb69cf259f84f (diff) | |
download | libxml2-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.c | 53 |
1 files changed, 53 insertions, 0 deletions
@@ -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); +} |