Hi,

Extension functions will modify the compiled-stylesheet at
transformation-time in certain scenarios.

Example:

<?xml version='1.0'?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:libxslt="http://xmlsoft.org/XSLT/";>

  <xsl:template match="/">
    <xsl:value-of select="libxslt:test('SUCCESS')"/>
  </xsl:template>

</xsl:stylesheet>

The above example will generate the following
callstack:

... -->
xmlXPathCompOpEval() -->
 xsltExtFunctionTest() -->
  xsltGetExtData() -->
   xsltExtInitTest() -->
    xsltStyleGetExtData():

xsltStyleGetExtData() will modify the stylesheet's @extInfos field:

  1) style->extInfos = xmlHashCreate(10);
  2) if (xmlHashAddEntry(style->extInfos, URI, (void *) data) < 0)

I think this could lead to race conditions in multithreaded
scenarios using precompiled stylesheets.
We need to change this somehow to avoid modifying the stylesheet
at transformation-time.

Does anyone know if this is a known issue? Is someone into
that part of code?

Regards,

Kasimier
_______________________________________________
xslt mailing list, project page http://xmlsoft.org/XSLT/
[email protected]
http://mail.gnome.org/mailman/listinfo/xslt

Reply via email to