SET_UNUSED(opline->op1);
SET_UNUSED(opline->op2);
opline->op1.num = loop_var->u.try_catch_offset;
- opline->extended_value = ZEND_FAST_CALL_UNBOUND;
} else if (loop_var->opcode == ZEND_RETURN) {
/* Stack separator */
break;
zend_stack_del_top(&CG(loop_var_stack));
opline = zend_emit_op(NULL, ZEND_FAST_CALL, NULL, NULL);
- opline->op1.opline_num = opnum_jmp + 1;
+ opline->op1.num = try_catch_offset;
opline->result_type = IS_TMP_VAR;
opline->result.var = CG(context).fast_call_var;
#define ZEND_FAST_RET_TO_FINALLY 2
#define ZEND_FAST_CALL_FROM_FINALLY 1
-#define ZEND_FAST_CALL_UNBOUND 2
#define ZEND_ARRAY_ELEMENT_REF (1<<0)
#define ZEND_ARRAY_NOT_PACKED (1<<1)
if (finally_op_num) {
/* Must be ZEND_FAST_CALL */
ZEND_ASSERT(op_array->opcodes[finally_op_num - 2].opcode == ZEND_FAST_CALL);
- if (op_array->opcodes[op_num].extended_value == 0) {
- op_array->opcodes[op_num].extended_value = ZEND_FAST_CALL_FROM_FINALLY;
- op_array->opcodes[op_num].op2.opline_num = finally_op_num - 2;
- }
+ op_array->opcodes[op_num].extended_value = ZEND_FAST_CALL_FROM_FINALLY;
+ op_array->opcodes[op_num].op2.opline_num = finally_op_num - 2;
}
}
while (opline < end) {
switch (opline->opcode) {
case ZEND_FAST_CALL:
- if (opline->extended_value == ZEND_FAST_CALL_UNBOUND) {
- opline->op1.opline_num = op_array->try_catch_array[opline->op1.num].finally_op;
- opline->extended_value = 0;
- }
+ opline->op1.opline_num = op_array->try_catch_array[opline->op1.num].finally_op;
zend_resolve_fast_call(op_array, opline - op_array->opcodes);
ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1);
break;