[libxslt] Remove case labels with XPointer location types
- From: Nick Wellnhofer <nwellnhof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libxslt] Remove case labels with XPointer location types
- Date: Thu, 21 Apr 2022 03:17:57 +0000 (UTC)
commit 36bbe5ab3c7bdd2f59afa0592b738e6369b827d7
Author: Nick Wellnhofer <wellnhofer aevum de>
Date: Thu Apr 21 04:53:46 2022 +0200
Remove case labels with XPointer location types
libxslt/functions.c | 36 +++++++++---------------------------
python/types.c | 3 ---
2 files changed, 9 insertions(+), 30 deletions(-)
---
diff --git a/libxslt/functions.c b/libxslt/functions.c
index fa20f317..fa8b6d93 100644
--- a/libxslt/functions.c
+++ b/libxslt/functions.c
@@ -187,36 +187,18 @@ xsltDocumentFunctionLoadDocument(xmlXPathParserContextPtr ctxt, xmlChar* URI)
xmlXPathFreeContext(xptrctxt);
#endif /* LIBXML_XPTR_ENABLED */
- if (resObj == NULL)
- goto out_fragment;
-
- switch (resObj->type) {
- case XPATH_NODESET:
- break;
- case XPATH_UNDEFINED:
- case XPATH_BOOLEAN:
- case XPATH_NUMBER:
- case XPATH_STRING:
- case XPATH_POINT:
- case XPATH_USERS:
- case XPATH_XSLT_TREE:
- case XPATH_RANGE:
- case XPATH_LOCATIONSET:
- xsltTransformError(tctxt, NULL, NULL,
- "document() : XPointer does not select a node set: #%s\n",
- fragment);
- goto out_object;
+ if ((resObj != NULL) && (resObj->type != XPATH_NODESET)) {
+ xsltTransformError(tctxt, NULL, NULL,
+ "document() : XPointer does not select a node set: #%s\n",
+ fragment);
+ xmlXPathFreeObject(resObj);
+ resObj = NULL;
}
- valuePush(ctxt, resObj);
- xmlFree(fragment);
- return;
-
-out_object:
- xmlXPathFreeObject(resObj);
-
out_fragment:
- valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+ if (resObj == NULL)
+ resObj = xmlXPathNewNodeSet(NULL);
+ valuePush(ctxt, resObj);
xmlFree(fragment);
}
diff --git a/python/types.c b/python/types.c
index 583b2929..1617cb96 100644
--- a/python/types.c
+++ b/python/types.c
@@ -491,9 +491,6 @@ libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj)
case XPATH_STRING:
ret = PY_IMPORT_STRING((char *) obj->stringval);
break;
- case XPATH_POINT:
- case XPATH_RANGE:
- case XPATH_LOCATIONSET:
default:
#ifdef DEBUG
printf("Unable to convert XPath object type %d\n", obj->type);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]