diff --git a/ChangeLog b/ChangeLog index 53ed9c49..846645c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ +Tue May 14 13:00:48 CEST 2002 Daniel Veillard + + * xpath.c: fixing an XPath function evalutation bug pointed out + by Alexey Efimov where the context was lost when evaluating + the function arguments + Mon 13 May 2002 11:37:39 PM PDT Aleksey Sanin + * xpath.c include/libxml/xpathInternals.h: maked xmlXPathNodeSetAddNs() function public for XMLSec performance optimizations diff --git a/xpath.c b/xpath.c index 99c3d2ee..7f1f87a2 100644 --- a/xpath.c +++ b/xpath.c @@ -9861,11 +9861,17 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) return (total); } case XPATH_OP_ARG: + bakd = ctxt->context->doc; + bak = ctxt->context->node; if (op->ch1 != -1) total += xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]); + ctxt->context->doc = bakd; + ctxt->context->node = bak; CHECK_ERROR0; if (op->ch2 != -1) total += xmlXPathCompOpEval(ctxt, &comp->steps[op->ch2]); + ctxt->context->doc = bakd; + ctxt->context->node = bak; CHECK_ERROR0; return (total); case XPATH_OP_PREDICATE: