Update of /cvsroot/perl-xml/XML-LibXML-XPathContext
In directory sc8-pr-cvs1:/tmp/cvs-serv26795
Modified Files:
XPathContext.xs
Log Message:
- fixed SP bug in _find*
Index: XPathContext.xs
===================================================================
RCS file: /cvsroot/perl-xml/XML-LibXML-XPathContext/XPathContext.xs,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- XPathContext.xs 20 Mar 2003 17:10:01 -0000 1.14
+++ XPathContext.xs 21 Mar 2003 16:05:01 -0000 1.15
@@ -390,6 +390,7 @@
perl_result = POPs;
if (!SvOK(perl_result)) {
+ /* warn("result is a empty\n"); */
ret = (xmlXPathObjectPtr)xmlXPathNewCString("");
goto FINISH;
}
@@ -803,7 +804,11 @@
LibXML_init_error();
+
+ PUTBACK ;
nodelist = domXPathSelect( ctxt, xpath );
+ SPAGAIN ;
+
xmlFree(xpath);
sv_2mortal( LibXML_error );
@@ -840,7 +845,6 @@
else {
element = PmmNodeToSv(tnode, owner);
}
-
XPUSHs( sv_2mortal(element) );
}
}
@@ -879,6 +883,7 @@
croak( "empty XPath found" );
XSRETURN_UNDEF;
}
+
PPCODE:
if ( ctxt->node->doc ) {
domNodeNormalize( xmlDocGetRootElement( ctxt->node->doc ) );
@@ -889,7 +894,10 @@
LibXML_init_error();
+ PUTBACK ;
found = domXPathFind( ctxt, xpath );
+ SPAGAIN ;
+
xmlFree( xpath );
sv_2mortal( LibXML_error );
@@ -938,7 +946,6 @@
else {
element = PmmNodeToSv(tnode, owner);
}
-
XPUSHs( sv_2mortal(element) );
}
}
|