summaryrefslogtreecommitdiff
path: root/Zend/zend_ast.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_ast.c')
-rw-r--r--Zend/zend_ast.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c
index b2af322d91..73f2390c11 100644
--- a/Zend/zend_ast.c
+++ b/Zend/zend_ast.c
@@ -485,16 +485,15 @@ static zend_result zend_ast_add_unpacked_element(zval *result, zval *expr) {
ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, val) {
if (key) {
- zend_throw_error(NULL, "Cannot unpack array with string keys");
- return FAILURE;
+ zend_hash_update(Z_ARRVAL_P(result), key, val);
} else {
if (!zend_hash_next_index_insert(Z_ARRVAL_P(result), val)) {
zend_throw_error(NULL,
"Cannot add element to the array as the next element is already occupied");
return FAILURE;
}
- Z_TRY_ADDREF_P(val);
}
+ Z_TRY_ADDREF_P(val);
} ZEND_HASH_FOREACH_END();
return SUCCESS;
}