summaryrefslogtreecommitdiff
path: root/Zend/zend_ast.c
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 /Zend/zend_ast.c
parent2ca08a3d66ea6fc6cca5337c5ade757bc86c1934 (diff)
downloadphp-git-9cf87aa1965504b1cd9dc595a3c6af418a416cfc.tar.gz
Avoid HashTable allocations for empty arrays (using zend_empty_array).
Diffstat (limited to 'Zend/zend_ast.c')
-rw-r--r--Zend/zend_ast.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c
index 96bedb7b42..9ace0790d5 100644
--- a/Zend/zend_ast.c
+++ b/Zend/zend_ast.c
@@ -408,10 +408,15 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
}
break;
case ZEND_AST_ARRAY:
- array_init(result);
{
uint32_t i;
zend_ast_list *list = zend_ast_get_list(ast);
+
+ if (!list->children) {
+ ZVAL_EMPTY_ARRAY(result);
+ break;
+ }
+ array_init(result);
for (i = 0; i < list->children; i++) {
zend_ast *elem = list->child[i];
if (elem->child[1]) {