OPLINE = opline; \
ZEND_VM_CONTINUE()
#define ZEND_VM_SMART_BRANCH(_result, _check) do { \
- if (EXPECTED((opline+1)->opcode == ZEND_JMPZ)) { \
+ if ((_check) && UNEXPECTED(EG(exception))) { \
+ OPLINE = EX(opline); \
+ } else if (EXPECTED((opline+1)->opcode == ZEND_JMPZ)) { \
if (_result) { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
} else { \
ZVAL_BOOL(EX_VAR(opline->result.var), _result); \
ZEND_VM_SET_NEXT_OPCODE(opline + 1); \
} \
- if ((_check) && UNEXPECTED(EG(exception))) { \
- OPLINE = EX(opline); \
- } \
ZEND_VM_CONTINUE(); \
} while (0)
#define ZEND_VM_SMART_BRANCH_JMPZ(_result, _check) do { \