com php-src: Revert "Fixed bug #70321 (Magic getter breaks reference to array property)": NEWS Zend/tests/bug70321.phpt Zend/zend_exe cute.c

From: Date: Sun, 23 Aug 2015 02:40:28 +0000
Subject: com php-src: Revert "Fixed bug #70321 (Magic getter breaks reference to array property)": NEWS Zend/tests/bug70321.phpt Zend/zend_exe cute.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-88726@lists.php.net to get a copy of this message
Commit: e26a04f9ecb18fe6d233fb5840f71ad216f27938 Author: Xinchen Hui <laruence@php.net> Sun, 23 Aug 2015 10:40:28 +0800 Parents: 66754585f889e56ddaf3442fd4ac7b9adf93417b Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e26a04f9ecb18fe6d233fb5840f71ad216f27938 Log: Revert "Fixed bug #70321 (Magic getter breaks reference to array property)" This reverts commit 66754585f889e56ddaf3442fd4ac7b9adf93417b. Bugs: https://bugs.php.net/70321 Changed paths: M NEWS D Zend/tests/bug70321.phpt M Zend/zend_execute.c Diff: diff --git a/NEWS b/NEWS index 4fdf0e6..f92f283 100644 --- a/NEWS +++ b/NEWS @@ -7,7 +7,6 @@ PHP NEWS . Fixed bug #70300 (Syntactical inconsistency with new group use syntax). (marcio dot web2 at gmail dot com) . Fixed bug causing exception traces with anon classes to be truncated. (Bob) - . Fixed bug #70321 (Magic getter breaks reference to array property). (Bob) - PDO_OCI: . Fixed bug #70308 (PDO::ATTR_PREFETCH is ignored). (Chris Jones) diff --git a/Zend/tests/bug70321.phpt b/Zend/tests/bug70321.phpt deleted file mode 100644 index b1cb87f..0000000 --- a/Zend/tests/bug70321.phpt +++ /dev/null @@ -1,31 +0,0 @@ ---TEST-- -Bug #70321 (Magic getter breaks reference to array property) ---FILE-- -<?php - -class foo { - private $bar; - public function __construct() { - $this->bar = new bar(); - } - - public function &__get($key) { - $bar = $this->bar; - // no direct reference to $this->bar - return $bar; - } -} - -class bar { public $baz = []; } - -$foo = new foo(); -$foo->bar->baz[] = function() {}; -var_dump($foo->bar->baz); - -?> ---EXPECTF-- -array(1) { - [0]=> - object(Closure)#%d (0) { - } -} diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index edb1f9d..59f936d 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -89,7 +89,7 @@ static const zend_internal_function zend_pass_function = { #define zval_ptr_dtor(zv) i_zval_ptr_dtor(zv ZEND_FILE_LINE_CC) #define READY_TO_DESTROY(zv) \ - (EXPECTED(zv) && Z_REFCOUNTED_P(zv) && Z_REFCOUNT_P(zv) == 1 && (EXPECTED(Z_ISREF_P(zv) == 0) || Z_REFCOUNTED_P(Z_REFVAL_P(zv)) && Z_REFCOUNT_P(Z_REFVAL_P(zv)) == 1)) + (UNEXPECTED(zv) && Z_REFCOUNTED_P(zv) && Z_REFCOUNT_P(zv) == 1) #define EXTRACT_ZVAL_PTR(zv, check_null) do { \ zval *__zv = (zv); \

« previous php.cvs (#88726) next »