Don't call xmlXPathInit directly
Call xmlInitParser which uses a lock to avoid race conditions.
Fixes #184.
diff --git a/xpath.c b/xpath.c
index 2850a1a..311997f 100644
--- a/xpath.c
+++ b/xpath.c
@@ -14234,7 +14234,7 @@
return(comp);
#endif
- xmlXPathInit();
+ xmlInitParser();
pctxt = xmlXPathNewParserContext(str, ctxt);
if (pctxt == NULL)
@@ -14323,7 +14323,7 @@
if (comp == NULL)
return(-1);
- xmlXPathInit();
+ xmlInitParser();
#ifndef LIBXML_THREAD_ENABLED
reentance++;
@@ -14468,7 +14468,7 @@
CHECK_CTXT(ctx)
- xmlXPathInit();
+ xmlInitParser();
ctxt = xmlXPathNewParserContext(str, ctx);
if (ctxt == NULL)
diff --git a/xpointer.c b/xpointer.c
index 39f4ac7..53def72 100644
--- a/xpointer.c
+++ b/xpointer.c
@@ -1352,7 +1352,7 @@
xmlXPathObjectPtr init = NULL;
int stack = 0;
- xmlXPathInit();
+ xmlInitParser();
if ((ctx == NULL) || (str == NULL))
return(NULL);