added io1.c an example ox xmlIO usage and io1.res test result, fixed a
* doc/examples/*: added io1.c an example ox xmlIO usage and io1.res
test result, fixed a awful lot of memory leaks showing up in
testWriter.c, changed the examples and the Makefiles to test
memory leaks.
* xmlwriter.c: fixed a memory leak
* Makefile.am: run the doc/examples regression tests as part of
make tests
* xpath.c include/libxml/xpath.h: added xmlXPathCtxtCompile() to
compile an XPath expression within a context, currently the goal
is to be able to reuse the XSLT stylesheet dictionnary, but this
opens the door to others possible optimizations.
* dict.c include/libxml/dict.h: added xmlDictCreateSub() which allows
to build a new dictionnary based on another read-only dictionnary.
This is needed for XSLT to keep the stylesheet dictionnary read-only
while being able to reuse the strings for the transformation
dictionnary.
* xinclude.c: fixed a dictionnar reference counting problem occuring
when document parsing failed.
* testSAX.c: adding option --repeat for timing 100times the parsing
* doc/* : rebuilt all the docs
Daniel
diff --git a/testSAX.c b/testSAX.c
index b8db61b..4f00c53 100644
--- a/testSAX.c
+++ b/testSAX.c
@@ -49,6 +49,7 @@
static int quiet = 0;
static int nonull = 0;
static int sax2 = 0;
+static int repeat = 0;
static int callbacks = 0;
xmlSAXHandler emptySAXHandlerStruct = {
@@ -913,6 +914,17 @@
* Debug callback
*/
callbacks = 0;
+ if (repeat) {
+ int i;
+ for (i = 0;i < 99;i++) {
+ if (sax2)
+ res = xmlSAXUserParseFile(debugSAX2Handler, NULL,
+ filename);
+ else
+ res = xmlSAXUserParseFile(debugSAXHandler, NULL,
+ filename);
+ }
+ }
if (sax2)
res = xmlSAXUserParseFile(debugSAX2Handler, NULL, filename);
else
@@ -956,7 +968,11 @@
else if ((!strcmp(argv[i], "-speed")) ||
(!strcmp(argv[i], "--speed")))
speed++;
- else if ((!strcmp(argv[i], "-noent")) ||
+ else if ((!strcmp(argv[i], "-repeat")) ||
+ (!strcmp(argv[i], "--repeat"))) {
+ repeat++;
+ quiet++;
+ } else if ((!strcmp(argv[i], "-noent")) ||
(!strcmp(argv[i], "--noent")))
noent++;
else if ((!strcmp(argv[i], "-quiet")) ||