diff options
author | Xinchen Hui <laruence@gmail.com> | 2016-12-09 22:22:59 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2016-12-09 22:22:59 +0800 |
commit | 6812721ef2c52ca7f518c6664a1933ffb58b3715 (patch) | |
tree | 1dafb472fa05f37a56f9c8a327efd80303bef27c | |
parent | 4589386026dbf15d980ba0c7c92dc587cead15e8 (diff) | |
download | php-git-6812721ef2c52ca7f518c6664a1933ffb58b3715.tar.gz |
Revert "Refix bug #73686"
This reverts commit 4589386026dbf15d980ba0c7c92dc587cead15e8.
-rw-r--r-- | Zend/zend_execute.c | 4 | ||||
-rw-r--r-- | ext/spl/spl_array.c | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 621fae74a3..647428f959 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1094,10 +1094,6 @@ static zend_never_inline void zend_assign_to_object_dim(zval *object, zval *dim, return; } - if (UNEXPECTED(Z_ISREF_P(value))) { - value = Z_REFVAL_P(value); - } - Z_OBJ_HT_P(object)->write_dimension(object, dim, value); } diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index bddf64ee57..d3fbb95991 100644 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -473,6 +473,11 @@ static void spl_array_write_dimension_ex(int check_inherited, zval *object, zval return; } + if (UNEXPECTED(Z_ISREF_P(value) && + Z_REFCOUNTED_P(value) == 1)) { + ZVAL_UNREF(value); + } + if (Z_REFCOUNTED_P(value)) { Z_ADDREF_P(value); } |