From: Dmitry Stogov Date: Tue, 8 Sep 2020 13:47:30 +0000 (+0300) Subject: micro-optimization X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a6a96116ac590ded65e8e8d4aac9d6412537c688;p=php micro-optimization --- 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);