call = NULL;
}
- FREE_OP2();
- if (UNEXPECTED(!call)) {
- HANDLE_EXCEPTION();
- }
-
if (OP2_TYPE & (IS_VAR|IS_TMP_VAR)) {
+ FREE_OP2();
if (UNEXPECTED(EG(exception))) {
if (call) {
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
}
HANDLE_EXCEPTION();
}
+ } else if (!call) {
+ HANDLE_EXCEPTION();
}
call->prev_execute_data = EX(call);
call = NULL;
}
- if (UNEXPECTED(!call)) {
- HANDLE_EXCEPTION();
- }
-
if (IS_CONST & (IS_VAR|IS_TMP_VAR)) {
+
if (UNEXPECTED(EG(exception))) {
if (call) {
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
}
HANDLE_EXCEPTION();
}
+ } else if (!call) {
+ HANDLE_EXCEPTION();
}
call->prev_execute_data = EX(call);
call = NULL;
}
- zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
- if (UNEXPECTED(!call)) {
- HANDLE_EXCEPTION();
- }
-
if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) {
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
if (UNEXPECTED(EG(exception))) {
if (call) {
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
}
HANDLE_EXCEPTION();
}
+ } else if (!call) {
+ HANDLE_EXCEPTION();
}
call->prev_execute_data = EX(call);
call = NULL;
}
- if (UNEXPECTED(!call)) {
- HANDLE_EXCEPTION();
- }
-
if (IS_CV & (IS_VAR|IS_TMP_VAR)) {
+
if (UNEXPECTED(EG(exception))) {
if (call) {
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
}
HANDLE_EXCEPTION();
}
+ } else if (!call) {
+ HANDLE_EXCEPTION();
}
call->prev_execute_data = EX(call);