From: Nikita Popov Date: Thu, 14 Jul 2016 18:44:36 +0000 (+0200) Subject: Fix bad merge X-Git-Tag: php-7.1.0beta1~61^2^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a26748d7be1c95d182a15a35ad1e42d6f374472e;p=php Fix bad merge In master the operand is fetched earlier, I didn't account for that. --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index c1e985ea1d..e73234a21c 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2312,7 +2312,7 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV) UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT) && UNEXPECTED(!Z_ISREF_P(EX_VAR(opline->op1.var)))) { zend_throw_error(NULL, "Cannot assign by reference to overloaded object"); - FREE_OP1_VAR_PTR(); + FREE_UNFETCHED_OP1(); FREE_OP2_VAR_PTR(); HANDLE_EXCEPTION(); } diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 3203af2c85..04ff3ebf2a 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -18504,7 +18504,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLE UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT) && UNEXPECTED(!Z_ISREF_P(EX_VAR(opline->op1.var)))) { zend_throw_error(NULL, "Cannot assign by reference to overloaded object"); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; + zval_ptr_dtor_nogc(EX_VAR(opline->op1.var)); if (UNEXPECTED(free_op2)) {zval_ptr_dtor_nogc(free_op2);}; HANDLE_EXCEPTION(); } @@ -20791,7 +20791,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT) && UNEXPECTED(!Z_ISREF_P(EX_VAR(opline->op1.var)))) { zend_throw_error(NULL, "Cannot assign by reference to overloaded object"); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; + zval_ptr_dtor_nogc(EX_VAR(opline->op1.var)); HANDLE_EXCEPTION(); }