a lot of performance work especially the speed of streaming through the
* globals.c libxml.h parser.c parserInternals.c tree.c xmllint.c
xmlreader.c include/libxml/parser.h: a lot of performance work
especially the speed of streaming through the reader and push
interface. Some thread related optimizations. Nearly doubled the
speed of parsing through the reader.
Daniel
diff --git a/tree.c b/tree.c
index abe9cf2..867f074 100644
--- a/tree.c
+++ b/tree.c
@@ -38,6 +38,8 @@
#include <libxml/HTMLtree.h>
#endif
+int __xmlRegisterCallbacks = 0;
+
xmlNsPtr xmlNewReconciliedNs(xmlDocPtr doc, xmlNodePtr tree, xmlNsPtr ns);
/************************************************************************
@@ -744,7 +746,7 @@
doc->extSubset = cur;
cur->doc = doc;
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -854,7 +856,7 @@
}
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -875,7 +877,7 @@
return;
}
- if (xmlDeregisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue((xmlNodePtr)cur);
if (cur->children != NULL) {
@@ -946,7 +948,7 @@
cur->doc = cur;
cur->charset = XML_CHAR_ENCODING_UTF8;
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -969,7 +971,7 @@
return;
}
- if (xmlDeregisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue((xmlNodePtr)cur);
/*
@@ -1552,7 +1554,7 @@
}
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -1632,7 +1634,7 @@
}
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -1712,7 +1714,7 @@
}
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -1767,7 +1769,7 @@
}
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -1811,7 +1813,7 @@
return;
}
- if (xmlDeregisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue((xmlNodePtr)cur);
/* Check for ID removal -> leading to invalid references ! */
@@ -1912,7 +1914,7 @@
cur->content = xmlStrdup(content);
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -1953,7 +1955,7 @@
cur->name = xmlStrdup(name);
cur->ns = ns;
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -1994,7 +1996,7 @@
cur->name = name;
cur->ns = ns;
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
return(cur);
}
@@ -2118,7 +2120,7 @@
cur->doc = doc;
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -2151,7 +2153,7 @@
cur->content = xmlStrdup(content);
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -2254,7 +2256,7 @@
} else
cur->name = xmlStrdup(name);
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -2308,7 +2310,7 @@
cur->last = (xmlNodePtr) ent;
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -2359,7 +2361,7 @@
cur->content = xmlStrndup(content, len);
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -2411,7 +2413,7 @@
cur->content = xmlStrdup(content);
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -2446,7 +2448,7 @@
cur->content = xmlStrndup(content, len);
}
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue(cur);
return(cur);
}
@@ -3076,7 +3078,7 @@
/* unroll to speed up freeing the document */
if (cur->type != XML_DTD_NODE) {
- if (xmlDeregisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue(cur);
if ((cur->children != NULL) &&
@@ -3161,7 +3163,7 @@
return;
}
- if (xmlDeregisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlDeregisterNodeDefaultValue))
xmlDeregisterNodeDefaultValue(cur);
if ((cur->children != NULL) &&
@@ -3630,7 +3632,7 @@
* in case ret does get coalesced in xmlAddChild
* the deregister-node callback is called; so we register ret now already
*/
- if (xmlRegisterNodeDefaultValue)
+ if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
xmlRegisterNodeDefaultValue((xmlNodePtr)ret);
tmp = xmlAddChild(parent, ret);