summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index e8a16c4ef0..0b4941e1f4 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -5201,15 +5201,17 @@ void zend_compile_try(zend_ast *ast) /* {{{ */
zend_error_noreturn(E_COMPILE_ERROR, "Cannot re-assign $this");
}
- opline->op2_type = IS_CV;
- opline->op2.var = lookup_cv(CG(active_op_array), var_name);
+ opline->result_type = IS_CV;
+ opline->result.var = lookup_cv(CG(active_op_array), var_name);
- opline->result.num = is_last_catch && is_last_class;
+ if (is_last_catch && is_last_class) {
+ opline->extended_value = ZEND_LAST_CATCH;
+ }
if (!is_last_class) {
jmp_multicatch[j] = zend_emit_jump(0);
opline = &CG(active_op_array)->opcodes[opnum_catch];
- opline->extended_value = get_next_op_number(CG(active_op_array));
+ opline->op2.opline_num = get_next_op_number(CG(active_op_array));
}
}
@@ -5227,7 +5229,7 @@ void zend_compile_try(zend_ast *ast) /* {{{ */
opline = &CG(active_op_array)->opcodes[opnum_catch];
if (!is_last_catch) {
- opline->extended_value = get_next_op_number(CG(active_op_array));
+ opline->op2.opline_num = get_next_op_number(CG(active_op_array));
}
}