From: Dmitry Stogov Date: Wed, 11 Jun 2014 23:14:57 +0000 (+0400) Subject: Fixed reference handling X-Git-Tag: POST_PHPNG_MERGE~201 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=593b125eb985f5cdfa346d8f1d249924899b2558;p=php Fixed reference handling --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 86fcb44c34..def0c490c6 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -456,11 +456,8 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_dim_helper, VAR|UNUSED|CV, CONST|TMP|VAR ZEND_VM_C_GOTO(assign_op_dim_exit); } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -511,11 +508,8 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|UNUSED|CV, CONST|TMP|VAR|UNU ZEND_VM_C_GOTO(assign_op_exit); } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -893,11 +887,8 @@ ZEND_VM_HANDLER(34, ZEND_PRE_INC, VAR|CV, ANY) ZEND_VM_NEXT_OPCODE(); } - if (UNEXPECTED(Z_ISREF_P(var_ptr))) { - var_ptr = Z_REFVAL_P(var_ptr); - } else { - SEPARATE_ZVAL_NOREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && Z_OBJ_HANDLER_P(var_ptr, get) @@ -951,11 +942,8 @@ ZEND_VM_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY) ZEND_VM_NEXT_OPCODE(); } - if (UNEXPECTED(Z_ISREF_P(var_ptr))) { - var_ptr = Z_REFVAL_P(var_ptr); - } else { - SEPARATE_ZVAL_NOREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && Z_OBJ_HANDLER_P(var_ptr, get) diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 7961f10adf..fa61d27bd8 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -12515,11 +12515,8 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS ZEND_VM_NEXT_OPCODE(); } - if (UNEXPECTED(Z_ISREF_P(var_ptr))) { - var_ptr = Z_REFVAL_P(var_ptr); - } else { - SEPARATE_ZVAL_NOREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && Z_OBJ_HANDLER_P(var_ptr, get) @@ -12573,11 +12570,8 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS ZEND_VM_NEXT_OPCODE(); } - if (UNEXPECTED(Z_ISREF_P(var_ptr))) { - var_ptr = Z_REFVAL_P(var_ptr); - } else { - SEPARATE_ZVAL_NOREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && Z_OBJ_HANDLER_P(var_ptr, get) @@ -14336,11 +14330,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_CONST(int (*b goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -14391,11 +14382,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -16717,11 +16705,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_TMP(int (*bin goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -16772,11 +16757,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_ goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -18709,11 +18691,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_VAR(int (*bin goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -18764,11 +18743,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_ goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -20788,11 +20764,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_UNUSED(int (* goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -20843,11 +20816,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -22249,11 +22219,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_CV(int (*bina goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -22304,11 +22271,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -24097,11 +24061,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_CONST(int goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -24152,11 +24113,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CONST(int (*bi goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -25470,11 +25428,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_TMP(int (* goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -25525,11 +25480,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_TMP(int (*bina goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -26757,11 +26709,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_VAR(int (* goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -26812,11 +26761,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -28043,11 +27989,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_UNUSED(int goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -28098,11 +28041,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_UNUSED(int (*b goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -28565,11 +28505,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_CV(int (*b goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -28620,11 +28557,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CV(int (*binar goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -29770,11 +29704,8 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) ZEND_VM_NEXT_OPCODE(); } - if (UNEXPECTED(Z_ISREF_P(var_ptr))) { - var_ptr = Z_REFVAL_P(var_ptr); - } else { - SEPARATE_ZVAL_NOREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && Z_OBJ_HANDLER_P(var_ptr, get) @@ -29827,11 +29758,8 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) ZEND_VM_NEXT_OPCODE(); } - if (UNEXPECTED(Z_ISREF_P(var_ptr))) { - var_ptr = Z_REFVAL_P(var_ptr); - } else { - SEPARATE_ZVAL_NOREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && Z_OBJ_HANDLER_P(var_ptr, get) @@ -31406,11 +31334,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_CONST(int (*bi goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -31461,11 +31386,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CONST(int (*binary goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -33601,11 +33523,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_TMP(int (*bina goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -33656,11 +33575,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_TMP(int (*binary_o goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -35476,11 +35392,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_VAR(int (*bina goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -35531,11 +35444,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -37437,11 +37347,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_UNUSED(int (*b goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -37492,11 +37399,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_UNUSED(int (*binar goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -38764,11 +38668,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_CV(int (*binar goto assign_op_dim_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) { @@ -38819,11 +38720,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CV(int (*binary_op goto assign_op_exit; } - if (EXPECTED(!Z_ISREF_P(var_ptr))) { - SEPARATE_ZVAL_NOREF(var_ptr); - } else { - ZVAL_DEREF(var_ptr); - } + ZVAL_DEREF(var_ptr); + SEPARATE_ZVAL_NOREF(var_ptr); if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) && UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {