Re: [xml] xpath and xmlXPathObject::nodesetval, need clarification
- From: Daniel Veillard <veillard redhat com>
- To: Viktor Åtujber <theultramage gmail com>
- Cc: xml gnome org
- Subject: Re: [xml] xpath and xmlXPathObject::nodesetval, need clarification
- Date: Wed, 24 Jun 2009 10:49:46 +0200
On Fri, Jun 19, 2009 at 10:07:46AM +0200, Viktor Åtujber wrote:
In the meantime, I found that the null pointer is produced in libxml's xpath.c
contextSeq = obj->nodesetval;
if ((contextSeq == NULL) || (contextSeq->nodeNr <= 0)) {
xmlXPathReleaseObject(xpctxt, obj);
valuePush(ctxt, xmlXPathCacheWrapNodeSet(xpctxt, NULL));
return(0);
}
Is this ok?
yes
Why deallocate and return null, instead of keeping things
consistent?
A NULL object or an empty node set should be treated in the same way
Reason: that code may be an intermediary step in a lot of recusive
operations and it's better to not have to merge node sets than merging
an empty one, but that's from memory.
Also, I wonder... is it possible that the code I posted earlier is
handling things incorrectly? Perhaps the 'nodesetval' pointer is for
internal use only, and the application should use proper API functions
to step through the result set? If so, how?
values inside the XPath object are public, it's part of the API. There
is no iterator API.
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel veillard com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]