[xml] [PATCH] XPath results order



Hi,

When using libxml2 git master, some lxml tests fail. The cause is this commit:

commit ba58f23c60862f2158b457f4d30031761bf4dde1
Author: Nick Wellnhofer <wellnhofer aevum de>
Date:   Sun Mar 8 16:44:11 2015 +0100

    Fix order of root nodes
    
    Make sure root nodes are sorted before other nodes.

diff --git a/xpath.c b/xpath.c
index ffd2a48..e9f5bf9 100644
--- a/xpath.c
+++ b/xpath.c
@@ -361,13 +361,13 @@ turtle_comparison:
     /*
      * compute depth to root
      */
-    for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
+    for (depth2 = 0, cur = node2; cur != NULL; cur = cur->parent) {
        if (cur == node1)
            return(1);
        depth2++;
     }
     root = cur;
-    for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
+    for (depth1 = 0, cur = node1; cur != NULL; cur = cur->parent) {
        if (cur == node2)
            return(-1);
        depth1++;
    }
    /*                                                                          
     * Distinct document (or distinct entities :-( ) case.                      
     */
    if (root != cur) {
        return(-2);
    }


Consider the last three lines. After the change, root == NULL == cur,
and the condition (root != cur) is always false. That’s not
what we want.

Patch attached.

Regards
 Olli Pottonen

Attachment: xpathpatch.txt
Description: Text document



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]