ID:               27236
 User updated by:  bo at theaddedones dot com
 Reported By:      bo at theaddedones dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         XSLT related
 Operating System: solaris 8, OSX 10.3, Redhat
 PHP Version:      4.3.4
 New Comment:

here is compact code bit that seesms to give the error i speak of

----

<?php

$inSheet = 

'<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:output method="html" />



<xsl:key name="state_key" match="images" use="state"/>

<xsl:template name="TestKey">

        <xsl:for-each
select="//images[generate-id()=generate-id(key(\'state_key\',state)[1])]">

                <xsl:value-of select="state"/>, 

        </xsl:for-each>

</xsl:template>

<xsl:template match="/" />

</xsl:stylesheet>';



$inXML = '<?xml version="1.0" encoding="ISO-8859-1"?>

        <images>

                <author>Karl Larsen</author>

                <city>Culver City</city>

                <state>CA</state>

                <country>USA</country>

        </images>';

$xsltString = domxml_xslt_stylesheet_doc(domxml_open_mem($inSheet));

$xmlString = domxml_open_mem($inXML);

$res = $xsltString->process($xmlString);

print $xsltString->result_dump_mem($res);

?>


Previous Comments:
------------------------------------------------------------------------

[2004-02-13 08:16:02] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc.

If possible, make the script source available online and provide
an URL to it here. Try avoid embedding huge scripts into the report.



------------------------------------------------------------------------

[2004-02-12 19:59:20] bo at theaddedones dot com

sorry, 

in the 'reporduce code' the proper xsl would be (just mistyped it)



<xsl:key name="state_key" match="data" use="state"/>

<xsl:for-each

select="//data[generate-id()=generate-id(key('state_key',state)[1])]"><xsl:value-of

select="state"/>, 

</xsl:for-each>

------------------------------------------------------------------------

[2004-02-12 19:55:30] bo at theaddedones dot com

Description:
------------
i have a slew of xml data that i need to select unique values from ...
the easiest method is via the xsl:key ... 



when i ever i use xsl:key to make a key (regardless of if i use or not)
the xslt processor (libxml2 '20507', libxslt 1.0.30  -> 1.0.36 (the
versions i have tried)) i get an 'xmlFree' error IF i compiled the
libxml with the debug-mem option...if not i crashes the Apache (1.3.29)
child  via a bus error...



the error....



Warning: Unknown(): Memory tag error occurs :0x6637671 bye in Unknown
on line 0



Warning: Unknown(): xmlMemFree(6637691) error in Unknown on line 0



Warning: Unknown(): xmlMallocBreakpoint reached on block 0 in Unknown
on line 0



interestingly, the entire XSL process works fine, and returns a
properly converted document (even the keys work properly), it jsut dies
with the memory error..i'm guessing something funny with garbage
colleciton

Reproduce code:
---------------
the below should dump all the unique states in my data as a comma
separated list



<xsl:key name="state_key" match="images" use="state"/>

<xsl:for-each

select="//data[generate-id()=generate-id(key('state_key',state)[1])]"><xsl:value-of
select="state"/>, 

</xsl:for-each>



save as a normal xslt file

try to compile using dom ala 

domxml_xslt_stylesheet_file({your file})...

create some XML, and process the beast via 'process' you shall see the
error

Expected result:
----------------
no silly memmory failures

Actual result:
--------------
Warning: Unknown(): Memory tag error occurs :0x6637671 bye in Unknown
on line 0



Warning: Unknown(): xmlMemFree(6637691) error in Unknown on line 0



Warning: Unknown(): xmlMallocBreakpoint reached on block 0 in Unknown
on line 0


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=27236&edit=1

Reply via email to