From: Petr P. <pa...@us...> - 2003-03-21 16:44:50
|
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) ); } } |