]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.4' into PHP-5.5
authorGustavo Lopes <glopes@nebm.ist.utl.pt>
Wed, 23 Jan 2013 12:24:50 +0000 (13:24 +0100)
committerGustavo Lopes <glopes@nebm.ist.utl.pt>
Wed, 23 Jan 2013 12:24:50 +0000 (13:24 +0100)
* PHP-5.4:
  Fix bug #64023 (__toString() & SplFileInfo)

1  2 
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

Simple merge
index ab69ee292bdab44afdc1f6589a68402f58e2bc24,97e5a8e93fd05eab8139917b7b6430c25d6e8318..25ac1ea89e737c7faed27e0eac39bd13462c3d84
@@@ -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();