Avoid useless EG(exception) checks

This commit is contained in:
Dmitry Stogov 2015-09-09 11:54:44 +03:00
parent b00a315806
commit b1be126788
2 changed files with 16 additions and 12 deletions

View File

@ -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();
}

View File

@ -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();
}