summaryrefslogtreecommitdiff
path: root/ext/xsl
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2017-10-24 17:27:31 +0300
committerDmitry Stogov <dmitry@zend.com>2017-10-24 17:27:31 +0300
commit9cf87aa1965504b1cd9dc595a3c6af418a416cfc (patch)
tree887b57fe5485acc98b2ffb44149a1c049433a67c /ext/xsl
parent2ca08a3d66ea6fc6cca5337c5ade757bc86c1934 (diff)
downloadphp-git-9cf87aa1965504b1cd9dc595a3c6af418a416cfc.tar.gz
Avoid HashTable allocations for empty arrays (using zend_empty_array).
Diffstat (limited to 'ext/xsl')
-rw-r--r--ext/xsl/xsltprocessor.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c
index 02c436e340..6fda147b5c 100644
--- a/ext/xsl/xsltprocessor.c
+++ b/ext/xsl/xsltprocessor.c
@@ -252,8 +252,8 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t
} else if (type == 2) {
int j;
dom_object *domintern = (dom_object *)intern->doc;
- array_init(&args[i]);
if (obj->nodesetval && obj->nodesetval->nodeNr > 0) {
+ array_init(&args[i]);
for (j = 0; j < obj->nodesetval->nodeNr; j++) {
xmlNodePtr node = obj->nodesetval->nodeTab[j];
zval child;
@@ -282,6 +282,8 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t
php_dom_create_object(node, &child, domintern);
add_next_index_zval(&args[i], &child);
}
+ } else {
+ ZVAL_EMPTY_ARRAY(&args[i]);
}
}
break;