Hi: this bug is kind of a serious one, since it's behavior wrongly. so maybe this one should merged to 5.3 and 5.4 branch..
thanks On Sat, May 12, 2012 at 1:13 PM, Xinchen Hui <larue...@php.net> wrote: > Commit: 3332943c9d20a8b5e09816b11f38742de0e16085 > Author: Xinchen Hui <larue...@php.net> Sat, 12 May 2012 13:13:44 > +0800 > Parents: 950d5ee590214742799836d3d939ee59f641bdf4 > Branches: PHP-5.3 > > Link: > http://git.php.net/?p=php-src.git;a=commitdiff;h=3332943c9d20a8b5e09816b11f38742de0e16085 > > Log: > Fixed Bug #62005 (unexpected behavior when incrementally assigning to a > member of a null object) > > Bugs: > https://bugs.php.net/62005 > > Changed paths: > M NEWS > A Zend/tests/bug62005.phpt > M Zend/zend_execute.c > > > Diff: > diff --git a/NEWS b/NEWS > index e9c1370..1057db7 100644 > --- a/NEWS > +++ b/NEWS > @@ -11,6 +11,8 @@ PHP > NEWS > (Laruence) > > - Core: > + . Fixed bug #62005 (unexpected behavior when incrementally assigning to a > + member of a null object). (Laruence) > . Fixed bug #61730 (Segfault from array_walk modifying an array passed by > reference). (Laruence) > . Fixed missing bound check in iptcparse(). (chris at chiappa.net) > diff --git a/Zend/tests/bug62005.phpt b/Zend/tests/bug62005.phpt > new file mode 100644 > index 0000000..4ff4b2c > --- /dev/null > +++ b/Zend/tests/bug62005.phpt > @@ -0,0 +1,15 @@ > +--TEST-- > +Bug #62005 (unexpected behavior when incrementally assigning to a member of > a null object) > +--FILE-- > +<?php > +function add_points($player, $points) { > + $player->energy += $points; > + print_r($player); > +} > +add_points(NULL, 2); > +--EXPECTF-- > +Strict Standards: Creating default object from empty value in %sbug62005.php > on line %d > +stdClass Object > +( > + [energy] => 2 > +) > diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c > index 705c713..4423921 100644 > --- a/Zend/zend_execute.c > +++ b/Zend/zend_execute.c > @@ -432,11 +432,10 @@ static inline void make_real_object(zval **object_ptr > TSRMLS_DC) > || (Z_TYPE_PP(object_ptr) == IS_BOOL && Z_LVAL_PP(object_ptr) > == 0) > || (Z_TYPE_PP(object_ptr) == IS_STRING && > Z_STRLEN_PP(object_ptr) == 0) > ) { > - zend_error(E_STRICT, "Creating default object from empty > value"); > - > SEPARATE_ZVAL_IF_NOT_REF(object_ptr); > zval_dtor(*object_ptr); > object_init(*object_ptr); > + zend_error(E_STRICT, "Creating default object from empty > value"); > } > } > > > -- > PHP CVS Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- Laruence Xinchen Hui http://www.laruence.com/ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php