rrichards Fri Aug 29 11:29:25 2003 EDT Modified files: (Branch: PHP_4_3) /php-src/ext/domxml php_domxml.c Log: workaround for bug #25268. libxslt issue with xsl:key Index: php-src/ext/domxml/php_domxml.c diff -u php-src/ext/domxml/php_domxml.c:1.218.2.28 php-src/ext/domxml/php_domxml.c:1.218.2.29 --- php-src/ext/domxml/php_domxml.c:1.218.2.28 Thu Aug 7 12:44:11 2003 +++ php-src/ext/domxml/php_domxml.c Fri Aug 29 11:29:24 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_domxml.c,v 1.218.2.28 2003/08/07 16:44:11 zeev Exp $ */ +/* $Id: php_domxml.c,v 1.218.2.29 2003/08/29 15:29:24 rrichards Exp $ */ /* TODO * - Support Notation Nodes @@ -5349,7 +5349,7 @@ xmlDocPtr xmldocp; xmlDocPtr docp; char **params = NULL; - int ret; + int ret, clone = 0; char *filename; int filename_len = 0; @@ -5361,7 +5361,7 @@ RETURN_FALSE; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o|abs", &idxml, &idparams, &xpath_params, &filename, &filename_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o|a!b!s!l", &idxml, &idparams, &xpath_params, &filename, &filename_len, &clone) == FAILURE) { RETURN_FALSE; } @@ -5371,6 +5371,10 @@ params = php_domxslt_make_params(idparams, xpath_params TSRMLS_CC); } + if (clone == 1) { + xmldocp = xmlCopyDoc(xmldocp, 1); + } + if (filename_len) { FILE *f; f = fopen (filename,"w"); @@ -5378,6 +5382,10 @@ fclose(f); } else { docp = xsltApplyStylesheet(xsltstp, xmldocp, (const char**)params); + } + + if (clone == 1) { + xmlFreeDoc(xmldocp); } if (params) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php