From 4ab25235e5b478e60d9951750fed9475a0e2b475 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Fri, 17 Aug 2018 12:22:46 +0800 Subject: [PATCH] Added a note --- Zend/zend_vm_def.h | 1 + Zend/zend_vm_execute.h | 3 +++ 2 files changed, 4 insertions(+) diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 14dc9e6763..74cf5806eb 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -6537,6 +6537,7 @@ ZEND_VM_COLD_CONST_HANDLER(169, ZEND_COALESCE, CONST|TMPVAR|CV, JMP_ADDR) SAVE_OPLINE(); value = GET_OP1_ZVAL_PTR(BP_VAR_IS); + /* FETCH_OBJ_IS may return IS_REFERENCE in TMP_VAR */ if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { if (OP1_TYPE & IS_VAR) { ref = value; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 523e0985f9..8a3dc22a9e 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -3545,6 +3545,7 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_CON SAVE_OPLINE(); value = RT_CONSTANT(opline, opline->op1); + /* FETCH_OBJ_IS may return IS_REFERENCE in TMP_VAR */ if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { if (IS_CONST & IS_VAR) { ref = value; @@ -12791,6 +12792,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_TMPVAR_HANDLER(Z SAVE_OPLINE(); value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); + /* FETCH_OBJ_IS may return IS_REFERENCE in TMP_VAR */ if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { if ((IS_TMP_VAR|IS_VAR) & IS_VAR) { ref = value; @@ -37925,6 +37927,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_CV_HANDLER(ZEND_ SAVE_OPLINE(); value = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); + /* FETCH_OBJ_IS may return IS_REFERENCE in TMP_VAR */ if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { if (IS_CV & IS_VAR) { ref = value; -- 2.50.0