| Index: third_party/libxml/src/xpointer.c
|
| diff --git a/third_party/libxml/src/xpointer.c b/third_party/libxml/src/xpointer.c
|
| index 676c5105837a2c9c9593d3ec903a3d5547e9070e..d74174a318f145e108614770fdda089c9fa9ddaa 100644
|
| --- a/third_party/libxml/src/xpointer.c
|
| +++ b/third_party/libxml/src/xpointer.c
|
| @@ -1332,8 +1332,6 @@ xmlXPtrNewContext(xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin) {
|
| ret->here = here;
|
| ret->origin = origin;
|
|
|
| - xmlXPathRegisterFunc(ret, (xmlChar *)"range-to",
|
| - xmlXPtrRangeToFunction);
|
| xmlXPathRegisterFunc(ret, (xmlChar *)"range",
|
| xmlXPtrRangeFunction);
|
| xmlXPathRegisterFunc(ret, (xmlChar *)"range-inside",
|
| @@ -2243,76 +2241,14 @@ xmlXPtrRangeInsideFunction(xmlXPathParserContextPtr ctxt, int nargs) {
|
| * @nargs: the number of args
|
| *
|
| * Implement the range-to() XPointer function
|
| + *
|
| + * Obsolete. range-to is not a real function but a special type of location
|
| + * step which is handled in xpath.c.
|
| */
|
| void
|
| -xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, int nargs) {
|
| - xmlXPathObjectPtr range;
|
| - const xmlChar *cur;
|
| - xmlXPathObjectPtr res, obj;
|
| - xmlXPathObjectPtr tmp;
|
| - xmlLocationSetPtr newset = NULL;
|
| - xmlNodeSetPtr oldset;
|
| - int i;
|
| -
|
| - if (ctxt == NULL) return;
|
| - CHECK_ARITY(1);
|
| - /*
|
| - * Save the expression pointer since we will have to evaluate
|
| - * it multiple times. Initialize the new set.
|
| - */
|
| - CHECK_TYPE(XPATH_NODESET);
|
| - obj = valuePop(ctxt);
|
| - oldset = obj->nodesetval;
|
| - ctxt->context->node = NULL;
|
| -
|
| - cur = ctxt->cur;
|
| - newset = xmlXPtrLocationSetCreate(NULL);
|
| -
|
| - for (i = 0; i < oldset->nodeNr; i++) {
|
| - ctxt->cur = cur;
|
| -
|
| - /*
|
| - * Run the evaluation with a node list made of a single item
|
| - * in the nodeset.
|
| - */
|
| - ctxt->context->node = oldset->nodeTab[i];
|
| - tmp = xmlXPathNewNodeSet(ctxt->context->node);
|
| - valuePush(ctxt, tmp);
|
| -
|
| - xmlXPathEvalExpr(ctxt);
|
| - CHECK_ERROR;
|
| -
|
| - /*
|
| - * The result of the evaluation need to be tested to
|
| - * decided whether the filter succeeded or not
|
| - */
|
| - res = valuePop(ctxt);
|
| - range = xmlXPtrNewRangeNodeObject(oldset->nodeTab[i], res);
|
| - if (range != NULL) {
|
| - xmlXPtrLocationSetAdd(newset, range);
|
| - }
|
| -
|
| - /*
|
| - * Cleanup
|
| - */
|
| - if (res != NULL)
|
| - xmlXPathFreeObject(res);
|
| - if (ctxt->value == tmp) {
|
| - res = valuePop(ctxt);
|
| - xmlXPathFreeObject(res);
|
| - }
|
| -
|
| - ctxt->context->node = NULL;
|
| - }
|
| -
|
| - /*
|
| - * The result is used as the new evaluation set.
|
| - */
|
| - xmlXPathFreeObject(obj);
|
| - ctxt->context->node = NULL;
|
| - ctxt->context->contextSize = -1;
|
| - ctxt->context->proximityPosition = -1;
|
| - valuePush(ctxt, xmlXPtrWrapLocationSet(newset));
|
| +xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt,
|
| + int nargs ATTRIBUTE_UNUSED) {
|
| + XP_ERROR(XPATH_EXPR_ERROR);
|
| }
|
|
|
| /**
|
|
|