diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-01-22 15:49:38 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-01-22 15:49:38 +0300 |
commit | faf917d94e6f4f2d56020a422c981a48bd724cf1 (patch) | |
tree | 63c77825a8bb7f50fb69a3a2dba6ab6d77f24256 | |
parent | 0b70f588221ec41779382928327fcfd3256ca13c (diff) | |
download | php-git-faf917d94e6f4f2d56020a422c981a48bd724cf1.tar.gz |
define() must not modify the source array
-rw-r--r-- | Zend/tests/constant_arrays.phpt | 2 | ||||
-rw-r--r-- | Zend/zend_builtin_functions.c | 9 |
2 files changed, 2 insertions, 9 deletions
diff --git a/Zend/tests/constant_arrays.phpt b/Zend/tests/constant_arrays.phpt index 834c12606e..5bb8717604 100644 --- a/Zend/tests/constant_arrays.phpt +++ b/Zend/tests/constant_arrays.phpt @@ -85,7 +85,7 @@ array(4) { int(3) array(1) { [0]=> - int(3) + &int(3) } array(1) { [0]=> diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 6b73bf344d..f5dd831cd4 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -746,14 +746,7 @@ static void copy_constant_array(zval *dst, zval *src) /* {{{ */ array_init_size(dst, zend_hash_num_elements(Z_ARRVAL_P(src))); ZEND_HASH_FOREACH_KEY_VAL_IND(Z_ARRVAL_P(src), idx, key, val) { /* constant arrays can't contain references */ - if (Z_ISREF_P(val)) { - if (Z_REFCOUNT_P(val) == 1) { - ZVAL_UNREF(val); - } else { - Z_DELREF_P(val); - val = Z_REFVAL_P(val); - } - } + ZVAL_DEREF(val); if (key) { new_val = zend_hash_add_new(Z_ARRVAL_P(dst), key, val); } else { |