diff --git a/HTMLparser.c b/HTMLparser.c
index 801712bc..a1396f79 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -2376,7 +2376,7 @@ htmlNewDocNoDtD(const xmlChar *URI, const xmlChar *ExternalID) {
return(NULL);
}
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
diff --git a/SAX2.c b/SAX2.c
index 48c0abc5..bffc65e7 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -1836,7 +1836,7 @@ skip:
} else
ret->content = (xmlChar *) intern;
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(ret);
return(ret);
}
@@ -1952,7 +1952,7 @@ xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt,
xmlSAX2ErrMemory(ctxt);
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)ret);
if ((ctxt->replaceEntities == 0) && (!ctxt->html)) {
@@ -2200,7 +2200,7 @@ xmlSAX2StartElementNs(void *ctx,
return;
}
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(ret);
} else {
if (ctxt->dictNames)
diff --git a/globals.c b/globals.c
index 863b54d5..2ba1aab0 100644
--- a/globals.c
+++ b/globals.c
@@ -1133,7 +1133,7 @@ xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func)
xmlMutexLock(&xmlThrDefMutex);
old = xmlRegisterNodeDefaultValueThrDef;
- __xmlRegisterCallbacks = 1;
+ xmlRegisterCallbacks = 1;
xmlRegisterNodeDefaultValueThrDef = func;
xmlMutexUnlock(&xmlThrDefMutex);
@@ -1148,7 +1148,7 @@ xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)
xmlMutexLock(&xmlThrDefMutex);
old = xmlDeregisterNodeDefaultValueThrDef;
- __xmlRegisterCallbacks = 1;
+ xmlRegisterCallbacks = 1;
xmlDeregisterNodeDefaultValueThrDef = func;
xmlMutexUnlock(&xmlThrDefMutex);
diff --git a/include/private/tree.h b/include/private/tree.h
index 2d651d53..131e80c6 100644
--- a/include/private/tree.h
+++ b/include/private/tree.h
@@ -1,13 +1,8 @@
#ifndef XML_TREE_H_PRIVATE__
#define XML_TREE_H_PRIVATE__
-/*
- * Internal variable indicating if a callback has been registered for
- * node creation/destruction. It avoids spending a lot of time in locking
- * function while checking if the callback exists.
- */
XML_HIDDEN extern int
-__xmlRegisterCallbacks;
+xmlRegisterCallbacks;
XML_HIDDEN int
xmlSearchNsSafe(xmlNodePtr node, const xmlChar *href, xmlNsPtr *out);
diff --git a/tree.c b/tree.c
index ee8a8882..1267e34e 100644
--- a/tree.c
+++ b/tree.c
@@ -47,7 +47,12 @@
#include "private/error.h"
#include "private/tree.h"
-int __xmlRegisterCallbacks = 0;
+/*
+ * Internal variable indicating whether a callback has been registered
+ * for node creation/destruction. This avoids looking up thread-local
+ * data if no callback was ever registered.
+ */
+int xmlRegisterCallbacks = 0;
/************************************************************************
* *
@@ -878,7 +883,7 @@ xmlNewDtd(xmlDocPtr doc, const xmlChar *name,
doc->extSubset = cur;
cur->doc = doc;
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
@@ -1001,7 +1006,7 @@ xmlCreateIntSubset(xmlDocPtr doc, const xmlChar *name,
}
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
@@ -1037,7 +1042,7 @@ xmlFreeDtd(xmlDtdPtr cur) {
}
if (cur->doc != NULL) dict = cur->doc->dict;
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue((xmlNodePtr)cur);
if (cur->children != NULL) {
@@ -1118,7 +1123,7 @@ xmlNewDoc(const xmlChar *version) {
*/
cur->charset = XML_CHAR_ENCODING_UTF8;
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -1140,7 +1145,7 @@ xmlFreeDoc(xmlDocPtr cur) {
dict = cur->dict;
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue((xmlNodePtr)cur);
/*
@@ -1733,7 +1738,7 @@ xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns,
}
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr) cur);
return (cur);
@@ -1868,7 +1873,7 @@ xmlNewDocProp(xmlDocPtr doc, const xmlChar *name, const xmlChar *value) {
goto error;
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
@@ -1907,7 +1912,7 @@ xmlFreeProp(xmlAttrPtr cur) {
if (cur->doc != NULL) dict = cur->doc->dict;
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue((xmlNodePtr)cur);
/* Check for ID removal -> leading to invalid references ! */
@@ -2003,7 +2008,7 @@ xmlNewDocPI(xmlDocPtr doc, const xmlChar *name, const xmlChar *content) {
goto error;
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
@@ -2090,7 +2095,7 @@ xmlNewElem(xmlDocPtr doc, xmlNsPtr ns, const xmlChar *name,
}
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
@@ -2252,7 +2257,7 @@ xmlNewDocFragment(xmlDocPtr doc) {
cur->doc = doc;
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -2288,7 +2293,7 @@ xmlNewText(const xmlChar *content) {
goto error;
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
@@ -2389,7 +2394,7 @@ xmlNewEntityRef(xmlDocPtr doc, xmlChar *name) {
cur->doc = doc;
cur->name = name;
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
@@ -2490,7 +2495,7 @@ xmlNewReference(const xmlDoc *doc, const xmlChar *name) {
cur->last = (xmlNodePtr) ent;
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
@@ -2550,7 +2555,7 @@ xmlNewTextLen(const xmlChar *content, int len) {
}
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -2606,7 +2611,7 @@ xmlNewComment(const xmlChar *content) {
goto error;
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
@@ -2648,7 +2653,7 @@ xmlNewCDataBlock(xmlDocPtr doc, const xmlChar *content, int len) {
}
}
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -3636,7 +3641,7 @@ xmlFreeNodeList(xmlNodePtr cur) {
cur->prev = NULL;
cur->next = NULL;
} else {
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue(cur);
if (((cur->type == XML_ELEMENT_NODE) ||
@@ -3715,7 +3720,7 @@ xmlFreeNode(xmlNodePtr cur) {
return;
}
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue(cur);
if (cur->doc != NULL) dict = cur->doc->dict;
@@ -4323,7 +4328,7 @@ xmlStaticCopyNode(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent,
}
out:
- if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)ret);
return(ret);
@@ -9898,7 +9903,7 @@ xmlRegisterNodeDefault(xmlRegisterNodeFunc func)
{
xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue;
- __xmlRegisterCallbacks = 1;
+ xmlRegisterCallbacks = 1;
xmlRegisterNodeDefaultValue = func;
return(old);
}
@@ -9918,7 +9923,7 @@ xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)
{
xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue;
- __xmlRegisterCallbacks = 1;
+ xmlRegisterCallbacks = 1;
xmlDeregisterNodeDefaultValue = func;
return(old);
}
diff --git a/xmlreader.c b/xmlreader.c
index 6609be0a..e132710a 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -259,7 +259,7 @@ xmlTextReaderFreeProp(xmlTextReaderPtr reader, xmlAttrPtr cur) {
dict = NULL;
if (cur == NULL) return;
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue((xmlNodePtr) cur);
if (cur->children != NULL)
@@ -350,7 +350,7 @@ xmlTextReaderFreeNodeList(xmlTextReaderPtr reader, xmlNodePtr cur) {
/* unroll to speed up freeing the document */
if (cur->type != XML_DTD_NODE) {
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue(cur);
if (((cur->type == XML_ELEMENT_NODE) ||
@@ -437,7 +437,7 @@ xmlTextReaderFreeNode(xmlTextReaderPtr reader, xmlNodePtr cur) {
cur->children = NULL;
}
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue(cur);
if (((cur->type == XML_ELEMENT_NODE) ||
@@ -490,7 +490,7 @@ xmlTextReaderFreeDoc(xmlTextReaderPtr reader, xmlDocPtr cur) {
if (cur == NULL) return;
- if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
+ if ((xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue((xmlNodePtr) cur);
/*