[PHP-CVS] com php-src: fix tests: tests/classes/unset_properties.phpt
Commit:bcf922b0f81194b364b019f4e1b5332068f25a67 Author:Stanislav Malyshev Tue, 22 Jan 2013 00:36:07 -0800 Parents: 9e7c2e5906d1ec943afe7f6a0daf613a36ba2137 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=bcf922b0f81194b364b019f4e1b5332068f25a67 Log: fix tests Changed paths: M tests/classes/unset_properties.phpt Diff: diff --git a/tests/classes/unset_properties.phpt b/tests/classes/unset_properties.phpt index 7f9b569..264e720 100644 --- a/tests/classes/unset_properties.phpt +++ b/tests/classes/unset_properties.phpt @@ -140,15 +140,15 @@ true new publicProperty value via public access protectedProperty set -__isset "protectedProperty"__isset "protectedProperty"false +__isset "protectedProperty"false __get "protectedProperty" __set "protectedProperty" to "new protectedProperty value via setter" __isset "protectedProperty"true new protectedProperty value via setter privateProperty set -__isset "privateProperty"__isset "privateProperty"false +__isset "privateProperty"false __get "privateProperty" __set "privateProperty" to "new privateProperty value via setter" __isset "privateProperty"true -new privateProperty value via setter \ No newline at end of file +new privateProperty value via setter -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: fix tests: tests/classes/unset_properties.phpt
Commit:122570443b828a51b4536d80ad487eb32bcc8817 Author:Stanislav Malyshev Tue, 22 Jan 2013 00:36:07 -0800 Parents: b8b3bb08b22a28041f5c02b371a88f231ec510de Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=122570443b828a51b4536d80ad487eb32bcc8817 Log: fix tests Changed paths: M tests/classes/unset_properties.phpt Diff: diff --git a/tests/classes/unset_properties.phpt b/tests/classes/unset_properties.phpt index 7f9b569..264e720 100644 --- a/tests/classes/unset_properties.phpt +++ b/tests/classes/unset_properties.phpt @@ -140,15 +140,15 @@ true new publicProperty value via public access protectedProperty set -__isset "protectedProperty"__isset "protectedProperty"false +__isset "protectedProperty"false __get "protectedProperty" __set "protectedProperty" to "new protectedProperty value via setter" __isset "protectedProperty"true new protectedProperty value via setter privateProperty set -__isset "privateProperty"__isset "privateProperty"false +__isset "privateProperty"false __get "privateProperty" __set "privateProperty" to "new privateProperty value via setter" __isset "privateProperty"true -new privateProperty value via setter \ No newline at end of file +new privateProperty value via setter -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: Zend/zend_vm_def.h Zend/zend_vm_execute.h
Commit:fc7b054c2d3aa0855c69b50dd7d386d558d6317e Author:Gustavo Lopes Wed, 23 Jan 2013 13:24:50 +0100 Parents: 95346c017c55e44a3e3d19945902a0275d3fafe4 b8b3bb08b22a28041f5c02b371a88f231ec510de Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=fc7b054c2d3aa0855c69b50dd7d386d558d6317e Log: Merge branch 'PHP-5.4' into PHP-5.5 * PHP-5.4: Fix bug #64023 (__toString() & SplFileInfo) Bugs: https://bugs.php.net/64023 Changed paths: MM Zend/zend_vm_def.h MM Zend/zend_vm_execute.h Diff: diff --cc Zend/zend_vm_execute.h index ab69ee2,97e5a8e..25ac1ea --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@@ -7414,24 -6434,12 +7402,12 @@@ static int ZEND_FASTCALL ZEND_ECHO_SPE zval *z; SAVE_OPLINE(); - z = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC); + z = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); - if (IS_TMP_VAR != IS_CONST && - UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && - Z_OBJ_HT_P(z)->get_method != NULL) { - if (IS_TMP_VAR == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (IS_TMP_VAR == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); zval_dtor(free_op1.var); CHECK_EXCEPTION(); @@@ -12625,24 -10740,12 +12601,12 @@@ static int ZEND_FASTCALL ZEND_ECHO_SPE zval *z; SAVE_OPLINE(); - z = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC); + z = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); - if (IS_VAR != IS_CONST && - UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && - Z_OBJ_HT_P(z)->get_method != NULL) { - if (IS_VAR == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (IS_VAR == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; CHECK_EXCEPTION(); @@@ -30217,24 -26708,12 +30181,12 @@@ static int ZEND_FASTCALL ZEND_ECHO_SPE zval *z; SAVE_OPLINE(); - z = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC); + z = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); - if (IS_CV != IS_CONST && - UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && - Z_OBJ_HT_P(z)->get_method != NULL) { - if (IS_CV == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (IS_CV == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); CHECK_EXCEPTION(); ZEND_VM_NEXT_OPCODE(); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Merge branch 'PHP-5.5': Zend/zend_vm_def.h Zend/zend_vm_execute.h
Commit:ddc98aa814fe2e540029ee28cf01e54a5c328359 Author:Gustavo Lopes Wed, 23 Jan 2013 13:26:15 +0100 Parents: 40d9075677de0087256a467331eb09d12ad3 fc7b054c2d3aa0855c69b50dd7d386d558d6317e Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=ddc98aa814fe2e540029ee28cf01e54a5c328359 Log: Merge branch 'PHP-5.5' * PHP-5.5: Fix bug #64023 (__toString() & SplFileInfo) Bugs: https://bugs.php.net/64023 Changed paths: MM Zend/zend_vm_def.h MM Zend/zend_vm_execute.h Diff: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: NEWS for bug #64023 (see aa0adce): NEWS
Commit:38bf6951b3615775cc91955ca71c07ecbf50120f Author:Gustavo Lopes Wed, 23 Jan 2013 13:30:40 +0100 Parents: aa0adce47d9b8ead59efede63a769e395e27bcd5 Branches: PHP-5.3 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=38bf6951b3615775cc91955ca71c07ecbf50120f Log: NEWS for bug #64023 (see aa0adce) Bugs: https://bugs.php.net/64023 Changed paths: M NEWS Diff: diff --git a/NEWS b/NEWS index d753d28..5215dc6 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,9 @@ PHP NEWS ?? ??? 2013, PHP 5.3.22 - Zend Engine: + . Fixed bug #64023 (echo tries standard cast_object implementation before the +one for the actual object; also fixed bug in SplFileInfo's cast_object). + (Gustavo, Dmitry) . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). (Johannes) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Merge branch 'bug64023' into PHP-5.4: Zend/zend_vm_def.h Zend/zend_vm_execute.h ext/spl/spl_directory.c
Commit:b8b3bb08b22a28041f5c02b371a88f231ec510de Author:Gustavo Lopes Tue, 22 Jan 2013 12:24:33 +0100 Parents: 86c1a26169ce44c9ea48e424b62128ee62f31d59 aa0adce47d9b8ead59efede63a769e395e27bcd5 Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=b8b3bb08b22a28041f5c02b371a88f231ec510de Log: Merge branch 'bug64023' into PHP-5.4 * bug64023: Fix bug #64023 (__toString() & SplFileInfo) Conflicts: Zend/zend_vm_def.h Zend/zend_vm_execute.h Bugs: https://bugs.php.net/64023 Changed paths: MM Zend/zend_vm_def.h MM Zend/zend_vm_execute.h MM ext/spl/spl_directory.c Diff: diff --cc Zend/zend_vm_def.h index b7fa907,e8d3250..e5cdd1d --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@@ -972,32 -894,16 +972,20 @@@ ZEND_VM_HANDLER(37, ZEND_POST_DEC, VAR| ZEND_VM_HANDLER(40, ZEND_ECHO, CONST|TMP|VAR|CV, ANY) { - zend_op *opline = EX(opline); + USE_OPLINE zend_free_op free_op1; - zval z_copy; - zval *z = GET_OP1_ZVAL_PTR(BP_VAR_R); + zval *z; + + SAVE_OPLINE(); + z = GET_OP1_ZVAL_PTR(BP_VAR_R); - if (OP1_TYPE != IS_CONST && - UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && - Z_OBJ_HT_P(z)->get_method != NULL) { - if (OP1_TYPE == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (OP1_TYPE == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); FREE_OP1(); + CHECK_EXCEPTION(); ZEND_VM_NEXT_OPCODE(); } diff --cc Zend/zend_vm_execute.h index 2680d85,f5cedd8..97e5a8e --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@@ -2022,31 -1318,15 +2022,19 @@@ static int ZEND_FASTCALL ZEND_BOOL_NOT static int ZEND_FASTCALL ZEND_ECHO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { - zend_op *opline = EX(opline); + USE_OPLINE + - zval z_copy; + zval *z; - zval *z = &opline->op1.u.constant; + SAVE_OPLINE(); + z = opline->op1.zv; - if (IS_CONST != IS_CONST && - UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && - Z_OBJ_HT_P(z)->get_method != NULL) { - if (IS_CONST == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (IS_CONST == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); + CHECK_EXCEPTION(); ZEND_VM_NEXT_OPCODE(); } @@@ -6441,32 -4622,16 +6429,20 @@@ static int ZEND_FASTCALL ZEND_BOOL_NOT static int ZEND_FASTCALL ZEND_ECHO_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { - zend_op *opline = EX(opline); + USE_OPLINE zend_free_op free_op1; - zval z_copy; - zval *z = _get_zval_ptr_tmp(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); + zval *z; + + SAVE_OPLINE(); + z = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC); - if (IS_TMP_VAR != IS_CONST && - UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && - Z_OBJ_HT_P(z)->get_method != NULL) { - if (IS_TMP_VAR == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (IS_TMP_VAR == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); zval_dtor(free_op1.var); + CHECK_EXCEPTION(); ZEND_VM_NEXT_OPCODE(); } @@@ -10759,32 -7874,16 +10735,20 @@@ static int ZEND_FASTCALL ZEND_POST_DEC static int ZEND_FASTCALL ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { - zend_op *opline = EX(opline); + USE_OPLINE zend_free_op free_op1; - zval z_copy; - zval *z = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); + zval *z; + + SAVE_OPLINE(); + z = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC); - if (IS_VAR != IS
[PHP-CVS] com php-src: Fix bug #64023 (__toString() & SplFileInfo): Zend/zend_vm_def.h Zend/zend_vm_execute.h ext/spl/spl_directory.c ext/spl/tests/bug64023.phpt
Commit:aa0adce47d9b8ead59efede63a769e395e27bcd5 Author:Gustavo Lopes Sat, 19 Jan 2013 16:21:26 +0100 Parents: 33b104c778c5c0e5446671397aaddd66efa4a7bc Branches: PHP-5.3 PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=aa0adce47d9b8ead59efede63a769e395e27bcd5 Log: Fix bug #64023 (__toString() & SplFileInfo) Defining a __toString() method was having no effect when concatenating the object. This was because the cast_object() handler would ignore __toString(). Using echo() directly would actually use __toString(), but this was a bug: the ECHO handler would try zend_std_cast_object_tostring() before cast_object(), but cast_object() should have priority as zend_std_cast_object_tostring() assumes an object with a zend_class_entry. Bugs: https://bugs.php.net/64023 Changed paths: M Zend/zend_vm_def.h M Zend/zend_vm_execute.h M ext/spl/spl_directory.c A ext/spl/tests/bug64023.phpt Diff: diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 3fa5327..e8d3250 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -896,23 +896,12 @@ ZEND_VM_HANDLER(40, ZEND_ECHO, CONST|TMP|VAR|CV, ANY) { zend_op *opline = EX(opline); zend_free_op free_op1; - zval z_copy; zval *z = GET_OP1_ZVAL_PTR(BP_VAR_R); - if (OP1_TYPE != IS_CONST && - Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) { - if (OP1_TYPE == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (OP1_TYPE == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); FREE_OP1(); ZEND_VM_NEXT_OPCODE(); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 1ad7f77..f5cedd8 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -1320,23 +1320,12 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { zend_op *opline = EX(opline); - zval z_copy; zval *z = &opline->op1.u.constant; - if (IS_CONST != IS_CONST && - Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) { - if (IS_CONST == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (IS_CONST == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); ZEND_VM_NEXT_OPCODE(); } @@ -4635,23 +4624,12 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { zend_op *opline = EX(opline); zend_free_op free_op1; - zval z_copy; zval *z = _get_zval_ptr_tmp(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); - if (IS_TMP_VAR != IS_CONST && - Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) { - if (IS_TMP_VAR == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if (IS_TMP_VAR == IS_TMP_VAR && Z_TYPE_P(z) == IS_OBJECT) { + INIT_PZVAL(z); } + zend_print_variable(z); zval_dtor(free_op1.var); ZEND_VM_NEXT_OPCODE(); @@ -7898,23 +7876,12 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { zend_op *opline = EX(opline); zend_free_op free_op1; - zval z_copy; zval *z = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); - if (IS_VAR != IS_CONST && - Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get_method != NULL) { - if (IS_VAR == IS_TMP_VAR) { - INIT_PZVAL(z); - } - if (zend_std_cast_object_tostring(z, &z_copy, IS_STRING TSRMLS_CC) == SUCCESS) { - zend_print_variable(&z_copy); - zval_dtor(&z_copy); - } else { - zend_print_variable(z); - } - } else { - zend_print_variable(z); + if