1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-10-26 20:25:14 +03:00

fixing an XPath function evalutation bug pointed out by Alexey Efimov

* xpath.c: fixing an XPath function evalutation bug pointed out
  by Alexey Efimov where the context was lost when evaluating
  the function arguments
Daniel
This commit is contained in:
Daniel Veillard 2002-05-14 11:03:59 +00:00
parent 79376ba948
commit 088bf11630
2 changed files with 13 additions and 0 deletions

View File

@ -1,4 +1,11 @@
Tue May 14 13:00:48 CEST 2002 Daniel Veillard <daniel@veillard.com>
* 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 <aleksey@aleksey.com>
* xpath.c include/libxml/xpathInternals.h: maked xmlXPathNodeSetAddNs()
function public for XMLSec performance optimizations

View File

@ -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: