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

Re: [xml] XPath fix



On Fri, Mar 22, 2002 at 10:28:30AM -0000, Richard Jinks wrote:
> Hi.
> 
> Found a small bug in xmlXPathCastToString() in xpath.c
> Had problems getting wierd results if the XPath result was a string (e.g.
> "string('Hello')" = "ÝÝÝÝÝÝÝÝÝÝ)p)" )
> Noticed that all other cases in xmlXPathCastToString() create a new string
> apart from case XPATH_STRING, which just returns the stringval itself. As I
> was already freeing the XPathObject results object, the memory was getting
> trashed.
> Fix just involves returning a duplicate of the string, and now you are
> always responsible for freeing the string returned separately, regardless of
> what type of result it is.

  Hum, right, that's sensible. This doesn't seem to introduce memory
leak either so I assume that path was simply never used in the regression
tests. I made the change, thanks.

> As a heads up, I'm working on a fix for one of the number expressions -
> libxml returns 1 for the expression "5.46 mod 2.6". Apparently, according to
> the xsl-list, it should return "0.26" (Something to do with Java doing
> floating point mods, C only doing integer mods).

  Section 3.5 of the XPath spec states:
    "This is the same as the % operator in Java and ECMAScript."
    "This is not the same as the IEEE 754 remainder operation,
     which returns the remainder from a rounding division."

 So they may be right, I hate those parts where XPath/XSLT relies on Java
for the semantic of operations, it is usually a mess.

Daniel

-- 
Daniel Veillard      | Red Hat Network https://rhn.redhat.com/
veillard redhat com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/



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