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