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 /Zend/zend_builtin_functions.c | |
parent | 0b70f588221ec41779382928327fcfd3256ca13c (diff) | |
download | php-git-faf917d94e6f4f2d56020a422c981a48bd724cf1.tar.gz |
define() must not modify the source array
Diffstat (limited to 'Zend/zend_builtin_functions.c')
-rw-r--r-- | Zend/zend_builtin_functions.c | 9 |
1 files changed, 1 insertions, 8 deletions
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 { |