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 /Zend/zend_ast.c | |
parent | 2ca08a3d66ea6fc6cca5337c5ade757bc86c1934 (diff) | |
download | php-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.c | 7 |
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]) { |