Completely changed the way the XPath evaluation is done, likely to break
stuff like libxslt right now:
- Makefile.am: detect XPath memleaks in regreson tests
- error.c: fixed and error w.r.t. error reporting still using
stderr
- hash.c: added new line at end of file
- tree.h: minor cleanup
- xpath.[ch] xpointer.[ch]: Major changes ! Separated XPath
expression parsing from evaluation, resulted in a number of
changes internally, and in XPointer. Likely to break stuff
using xpathInternals.h but should remain binary compatible,
new interfaces will be added.
Daniel
diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h
index f8fd861..d7e23d1 100644
--- a/include/libxml/xpath.h
+++ b/include/libxml/xpath.h
@@ -221,6 +221,13 @@
};
/*
+ * The structure of a compiled expression form is not public
+ */
+
+typedef struct _xmlXPathCompExpr xmlXPathCompExpr;
+typedef xmlXPathCompExpr *xmlXPathCompExprPtr;
+
+/*
* An XPath parser context, it contains pure parsing informations,
* an xmlXPathContext, and the stack of objects.
*/
@@ -230,6 +237,8 @@
int error; /* error code */
+ xmlXPathCompExprPtr comp; /* the precompiled expression */
+
xmlXPathContextPtr context; /* the evaluation context */
xmlXPathObjectPtr value; /* the current value */
int valueNr; /* number of values stacked */