On Sat, May 12, 2012 at 1:23 PM, Laruence <larue...@php.net> wrote:
> Hi:
>   this bug is kind of a serious one, since it's behavior wrongly.
RMS:

 I think I should note that the reason why I said it is a serious one,
following script:

<?php
function add_points($player, $points) {
    $player->energy += $points;
    var_dump($player);
}

add_points(NULL, 2);
?>

will ouput:

NULL

in 5.3 and 5.4


thanks
>
>   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/



-- 
Laruence  Xinchen Hui
http://www.laruence.com/

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to