RE: [xslt] crash in libxslt 1.0.9
- From: "Vakoc, Mark" <Mark_Vakoc jdedwards com>
- To: "'xslt gnome org'" <xslt gnome org>
- Cc: "'veillard redhat com'" <veillard redhat com>
- Subject: RE: [xslt] crash in libxslt 1.0.9
- Date: Thu, 7 Mar 2002 11:48:51 -0700
I was entering a bug as I received this email
http://bugzilla.gnome.org/show_bug.cgi?id=73880 :)
> I think the problem is called "dynamic code generation".
> Basically exslt:function now allows to dynamically extend the XSLT
> code at run-time. Everything looked fine because the new document
> were also kept in the document list which is kept im memory till the
> end of the processing.
Not sure why you mention exsl:function as that isn't used anywhere, just
exsl:node-set
> However in the failing case it seems the exslt:function new code is
> built from a volatile copy of a global variable. So basically when the
> variable is deallocated some part needed for the processing of the
> code have disapeared, are deallocated and points to random data :-(
> The solution is to build a copy of the tree and process the code
> "compilation" from the copy of that tree and keep it as part of the
> extension function data. I will try to do this before the next release
> and hope it fixes the problem.
I have been digging in trying to figure this out, and simplified the source
stylesheet a little bit. Attached are two stylesheets (replacements for
style.xsl), broken.xsl and works.xsl. They are nearly identical, except
where
-- in broken.xsl --
<xsl:variable name="var">
stuff (see attachment for complete)
</xsl:variable>
<xsl:apply-templates select="exsl:node-set($var)"/>
-- in works.xsl
<xsl:variable name="var">
stuff (see attachment for complete)
</xsl:variable>
<xsl:variable name="var2" select="exsl:node-set($var)"/>
<xsl:apply-templates select="$var2"/>
I will continue to dig around to hopefully find an answer as I use this
'dynamic' approach in many stylesheets. Do you have any pointers where to
begin looking (this is, why the two examples behave differently?)
Thanks.
works.xsl
broken.xsl
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]