fixed bugs when passing result value tree to Python functions. Daniel

* python/types.c: fixed bugs when passing result value tree
  to Python functions.
Daniel
diff --git a/ChangeLog b/ChangeLog
index 917165b..2ea21a2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Oct 20 23:31:47 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+	* python/types.c: fixed bugs when passing result value tree
+	  to Python functions.
+
 Fri Oct 18 13:18:53 CEST 2002 Daniel Veillard <daniel@veillard.com>
 
 	* configure.in: preparing the release of 2.4.26
diff --git a/python/types.c b/python/types.c
index c9adc42..3f49028 100644
--- a/python/types.c
+++ b/python/types.c
@@ -342,13 +342,37 @@
         return (Py_None);
     }
     switch (obj->type) {
-        case XPATH_XSLT_TREE:
-            /* TODO !!!! Allocation problems */
+        case XPATH_XSLT_TREE: {
+            if ((obj->nodesetval == NULL) ||
+		(obj->nodesetval->nodeNr == 0) ||
+		(obj->nodesetval->nodeTab == NULL)) {
+                ret = PyList_New(0);
+	    } else {
+		int i, len = 0;
+		xmlNodePtr node;
+
+		node = obj->nodesetval->nodeTab[0]->children;
+		while (node != NULL) {
+		    len++;
+		    node = node->next;
+		}
+		ret = PyList_New(len);
+		node = obj->nodesetval->nodeTab[0]->children;
+		for (i = 0;i < len;i++) {
+                    PyList_SetItem(ret, i, libxml_xmlNodePtrWrap(node));
+		    node = node->next;
+		}
+	    }
+	    /*
+	     * Return now, do not free the object passed down
+	     */
+	    return (ret);
+	}
         case XPATH_NODESET:
             if ((obj->nodesetval == NULL)
-                || (obj->nodesetval->nodeNr == 0))
+                || (obj->nodesetval->nodeNr == 0)) {
                 ret = PyList_New(0);
-            else {
+	    } else {
                 int i;
                 xmlNodePtr node;