diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 3d82501efb5..460f59e5d16 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1770,11 +1770,11 @@ static void zend_pre_incdec_property_zval(zval *prop, zend_property_info *prop_i do { if (Z_ISREF_P(prop)) { zend_reference *ref = Z_REF_P(prop); + prop = Z_REFVAL_P(prop); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_incdec_typed_ref(ref, NULL OPLINE_CC EXECUTE_DATA_CC); break; } - prop = Z_REFVAL_P(prop); } if (UNEXPECTED(prop_info)) { @@ -1808,11 +1808,11 @@ static void zend_post_incdec_property_zval(zval *prop, zend_property_info *prop_ } else { if (Z_ISREF_P(prop)) { zend_reference *ref = Z_REF_P(prop); + prop = Z_REFVAL_P(prop); if (ZEND_REF_HAS_TYPE_SOURCES(ref)) { zend_incdec_typed_ref(ref, EX_VAR(opline->result.var) OPLINE_CC EXECUTE_DATA_CC); return; } - prop = Z_REFVAL_P(prop); } if (UNEXPECTED(prop_info)) { diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 29c214bb555..a2127f80b3f 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -1046,11 +1046,11 @@ ZEND_VM_C_LABEL(assign_op_object): do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if (OP2_TYPE == IS_CONST) { @@ -1109,11 +1109,11 @@ ZEND_VM_HANDLER(29, ZEND_ASSIGN_STATIC_PROP_OP, ANY, ANY, OP) do { if (UNEXPECTED(Z_ISREF_P(prop))) { ref = Z_REF_P(prop); + prop = Z_REFVAL_P(prop); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - prop = Z_REFVAL_P(prop); } if (UNEXPECTED(ZEND_TYPE_IS_SET(prop_info->type))) { @@ -1230,11 +1230,11 @@ ZEND_VM_HANDLER(26, ZEND_ASSIGN_OP, VAR|CV, CONST|TMPVAR|CV, OP) do { if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { zend_reference *ref = Z_REF_P(var_ptr); + var_ptr = Z_REFVAL_P(var_ptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - var_ptr = Z_REFVAL_P(var_ptr); } zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); } while (0); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 2b05a0138ea..15232d8dab6 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -788,11 +788,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_STATIC_PROP_OP_SPEC_HAN do { if (UNEXPECTED(Z_ISREF_P(prop))) { ref = Z_REF_P(prop); + prop = Z_REFVAL_P(prop); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - prop = Z_REFVAL_P(prop); } if (UNEXPECTED(ZEND_TYPE_IS_SET(prop_info->type))) { @@ -20967,11 +20967,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if (IS_CONST == IS_CONST) { @@ -21103,11 +21103,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_VAR_CONST_HANDL do { if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { zend_reference *ref = Z_REF_P(var_ptr); + var_ptr = Z_REFVAL_P(var_ptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - var_ptr = Z_REFVAL_P(var_ptr); } zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); } while (0); @@ -23232,11 +23232,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { @@ -23369,11 +23369,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR_HAND do { if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { zend_reference *ref = Z_REF_P(var_ptr); + var_ptr = Z_REFVAL_P(var_ptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - var_ptr = Z_REFVAL_P(var_ptr); } zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); } while (0); @@ -26688,11 +26688,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if (IS_CV == IS_CONST) { @@ -26824,11 +26824,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_VAR_CV_HANDLER( do { if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { zend_reference *ref = Z_REF_P(var_ptr); + var_ptr = Z_REFVAL_P(var_ptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - var_ptr = Z_REFVAL_P(var_ptr); } zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); } while (0); @@ -29129,11 +29129,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if (IS_CONST == IS_CONST) { @@ -30999,11 +30999,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { @@ -33396,11 +33396,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if (IS_CV == IS_CONST) { @@ -37415,11 +37415,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if (IS_CONST == IS_CONST) { @@ -37551,11 +37551,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_CV_CONST_HANDLE do { if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { zend_reference *ref = Z_REF_P(var_ptr); + var_ptr = Z_REFVAL_P(var_ptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - var_ptr = Z_REFVAL_P(var_ptr); } zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); } while (0); @@ -40894,11 +40894,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { @@ -41031,11 +41031,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_CV_TMPVAR_HANDL do { if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { zend_reference *ref = Z_REF_P(var_ptr); + var_ptr = Z_REFVAL_P(var_ptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - var_ptr = Z_REFVAL_P(var_ptr); } zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); } while (0); @@ -45706,11 +45706,11 @@ assign_op_object: do { if (UNEXPECTED(Z_ISREF_P(zptr))) { ref = Z_REF_P(zptr); + zptr = Z_REFVAL_P(zptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - zptr = Z_REFVAL_P(zptr); } if (IS_CV == IS_CONST) { @@ -45842,11 +45842,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_CV_CV_HANDLER(Z do { if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { zend_reference *ref = Z_REF_P(var_ptr); + var_ptr = Z_REFVAL_P(var_ptr); if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); break; } - var_ptr = Z_REFVAL_P(var_ptr); } zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); } while (0);