On Sunday 02 May 2004 17:39, Daniel Veillard wrote:
Hum, could you keep this on the list, there is a problem, right, but I really want archives. Daniel
Oops, I'm sorry, I'm using a mail client I'm not used to; I didn't notice Cc: was empty. The post follows. Petr On Sunday 02 May 2004 16:21, Daniel Veillard wrote: <snip>
xmlXPathCompile cannot report the run time error. And undefined variables definitely sounds to me a run time error. So I think you're looking in the wrong direction, but I may be wrong too. Daniel
Daniel, thanks for your quick response. I admit I went through xpath.c code too hastily and my analysis might have been rather misleading, confusing what happens at compile time and what happens at evaluation time. However, the importand thing that XPATH_UNDEF_VARIABLE_ERROR isn't passed to structured error handler is true nontheless. The only occurrance of this error constant appears in xmlXPathCompiledEval, at the line I mentioned before: 10297 where it is assigned to ctxt->error where ctxt is a xmlXPathParserContextPtr (seeing "Parser" in the struct name wrongly assumed this was used at compile-time).
In XML::LibXML we call xmlXPathCompile for compilation and xmlXPathCompiledEval for evaluation, so the problem probably there. The relevant part of xmlXPathCompileEval reads:
#line 11055 ctxt = xmlXPathCompParserContext(comp, ctx); xmlXPathRunEval(ctxt);
if (ctxt->value == NULL) { xmlGenericError(xmlGenericErrorContext, "xmlXPathCompiledEval: evaluation failed\n"); res = NULL; } else { res = valuePop(ctxt); }
/* snip ... */ #line 11079 if (ctxt->error != XPATH_EXPRESSION_OK) { xmlXPathFreeObject(res); res = NULL; }
Ok, I guess I'll have to invest some time to a gdb session to see what happens down there really. Thanks, -- Petr
Attachment:
pgpXl8Z5KA4W0.pgp
Description: signature