diff options
-rw-r--r-- | Zend/zend_vm_def.h | 8 | ||||
-rw-r--r-- | Zend/zend_vm_execute.h | 22 |
2 files changed, 12 insertions, 18 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 6138ecb263..9c96328fc4 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -3729,12 +3729,8 @@ ZEND_VM_C_LABEL(try_function_name): 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) { @@ -3745,6 +3741,8 @@ ZEND_VM_C_LABEL(try_function_name): } HANDLE_EXCEPTION(); } + } else if (!call) { + HANDLE_EXCEPTION(); } call->prev_execute_data = EX(call); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index dbbacebe0d..af6dd7f090 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -3676,11 +3676,8 @@ try_function_name: 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) { @@ -3691,6 +3688,8 @@ try_function_name: } HANDLE_EXCEPTION(); } + } else if (!call) { + HANDLE_EXCEPTION(); } call->prev_execute_data = EX(call); @@ -3843,12 +3842,8 @@ try_function_name: 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) { @@ -3859,6 +3854,8 @@ try_function_name: } HANDLE_EXCEPTION(); } + } else if (!call) { + HANDLE_EXCEPTION(); } call->prev_execute_data = EX(call); @@ -3989,11 +3986,8 @@ try_function_name: 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) { @@ -4004,6 +3998,8 @@ try_function_name: } HANDLE_EXCEPTION(); } + } else if (!call) { + HANDLE_EXCEPTION(); } call->prev_execute_data = EX(call); |