У меня есть кусок кода, который иногда прекрасно работает, и несколько раз он падает. происходит сбой в XML-интерфейсе API xmlXPathFreeContext.
Не эксперт в XML, поэтому не знаю, как это отладить.
xmlXPathObjectPtr SIQXmlParser::getnodeset (xmlDocPtr doc, xmlChar *xpath)
{
xmlXPathContextPtr context;
xmlXPathObjectPtr result;
context = xmlXPathNewContext(doc);
if (context == NULL) {
printf("Error in xmlXPathNewContext\n");
return NULL;
}
result = xmlXPathEvalExpression(xpath, context);
xmlXPathFreeContext(context);
if (result == NULL) {
printf("Error in xmlXPathEvalExpression\n");
return NULL;
}
if(xmlXPathNodeSetIsEmpty(result->nodesetval)){
xmlXPathFreeObject(result);
printf("No result\n");
return NULL;
}
return result;
}