diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-10-24 17:27:31 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-10-24 17:27:31 +0300 |
commit | 9cf87aa1965504b1cd9dc595a3c6af418a416cfc (patch) | |
tree | 887b57fe5485acc98b2ffb44149a1c049433a67c /ext/xsl | |
parent | 2ca08a3d66ea6fc6cca5337c5ade757bc86c1934 (diff) | |
download | php-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.c | 4 |
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; |