@@ -3676,11 +3676,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_CONST_H
3676
3676
call = NULL;
3677
3677
}
3678
3678
3679
- if (UNEXPECTED(!call)) {
3680
- HANDLE_EXCEPTION();
3681
- }
3682
-
3683
3679
if (IS_CONST & (IS_VAR|IS_TMP_VAR)) {
3680
+
3684
3681
if (UNEXPECTED(EG(exception))) {
3685
3682
if (call) {
3686
3683
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
@@ -3691,6 +3688,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_CONST_H
3691
3688
}
3692
3689
HANDLE_EXCEPTION();
3693
3690
}
3691
+ } else if (!call) {
3692
+ HANDLE_EXCEPTION();
3694
3693
}
3695
3694
3696
3695
call->prev_execute_data = EX(call);
@@ -3843,12 +3842,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR_
3843
3842
call = NULL;
3844
3843
}
3845
3844
3846
- zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
3847
- if (UNEXPECTED(!call)) {
3848
- HANDLE_EXCEPTION();
3849
- }
3850
-
3851
3845
if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
3846
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
3852
3847
if (UNEXPECTED(EG(exception))) {
3853
3848
if (call) {
3854
3849
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
@@ -3859,6 +3854,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR_
3859
3854
}
3860
3855
HANDLE_EXCEPTION();
3861
3856
}
3857
+ } else if (!call) {
3858
+ HANDLE_EXCEPTION();
3862
3859
}
3863
3860
3864
3861
call->prev_execute_data = EX(call);
@@ -3989,11 +3986,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_CV_HAND
3989
3986
call = NULL;
3990
3987
}
3991
3988
3992
- if (UNEXPECTED(!call)) {
3993
- HANDLE_EXCEPTION();
3994
- }
3995
-
3996
3989
if (IS_CV & (IS_VAR|IS_TMP_VAR)) {
3990
+
3997
3991
if (UNEXPECTED(EG(exception))) {
3998
3992
if (call) {
3999
3993
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
@@ -4004,6 +3998,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_CV_HAND
4004
3998
}
4005
3999
HANDLE_EXCEPTION();
4006
4000
}
4001
+ } else if (!call) {
4002
+ HANDLE_EXCEPTION();
4007
4003
}
4008
4004
4009
4005
call->prev_execute_data = EX(call);
0 commit comments