From: Dmitry Stogov Date: Wed, 9 Sep 2015 08:54:44 +0000 (+0300) Subject: Avoid useless EG(exception) checks X-Git-Tag: php-7.1.0alpha1~1203^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b1be126788162052707f5553ae1cafca0faa06ce;p=php Avoid useless EG(exception) checks --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 799a66e5eb..193ea32c62 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -6102,10 +6102,11 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH_R, VAR, ANY) } } else { zend_error(E_WARNING, "Invalid argument supplied for foreach()"); -ZEND_VM_C_LABEL(fe_fetch_r_exit): - if (EXPECTED(!EG(exception))) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); + if (UNEXPECTED(EG(exception))) { + HANDLE_EXCEPTION(); } +ZEND_VM_C_LABEL(fe_fetch_r_exit): + ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); ZEND_VM_CONTINUE(); } @@ -6293,10 +6294,11 @@ ZEND_VM_HANDLER(126, ZEND_FE_FETCH_RW, VAR, ANY) } } else { zend_error(E_WARNING, "Invalid argument supplied for foreach()"); -ZEND_VM_C_LABEL(fe_fetch_w_exit): - if (EXPECTED(!EG(exception))) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); + if (UNEXPECTED(EG(exception))) { + HANDLE_EXCEPTION(); } +ZEND_VM_C_LABEL(fe_fetch_w_exit): + ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); ZEND_VM_CONTINUE(); } diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index a9cb1e6207..2889de55f2 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -15912,10 +15912,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_R_SPEC_VAR_HANDLER(ZE } } else { zend_error(E_WARNING, "Invalid argument supplied for foreach()"); -fe_fetch_r_exit: - if (EXPECTED(!EG(exception))) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); + if (UNEXPECTED(EG(exception))) { + HANDLE_EXCEPTION(); } +fe_fetch_r_exit: + ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); ZEND_VM_CONTINUE(); } @@ -16103,10 +16104,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_RW_SPEC_VAR_HANDLER(Z } } else { zend_error(E_WARNING, "Invalid argument supplied for foreach()"); -fe_fetch_w_exit: - if (EXPECTED(!EG(exception))) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); + if (UNEXPECTED(EG(exception))) { + HANDLE_EXCEPTION(); } +fe_fetch_w_exit: + ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); ZEND_VM_CONTINUE(); }