summaryrefslogtreecommitdiff
path: root/Zend/zend_opcode.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2004-02-03 12:17:09 +0000
committerZeev Suraski <zeev@php.net>2004-02-03 12:17:09 +0000
commit9e60cb553fdff09dcff192d96884d75a9998bb73 (patch)
treeec9f7577dc55f3fdfc348bec94a194e783fbff9f /Zend/zend_opcode.c
parent330d9f6352f4a8af90e1b053399e4ab17b3b00b1 (diff)
downloadphp-git-9e60cb553fdff09dcff192d96884d75a9998bb73.tar.gz
Rewrote exception support. Fixes a few limitations and bugs in the old
implementation, and allows exceptions to 'fire' much earlier than before. Instructions on how to use the new mechanism will follow on internals@ shortly... Note - this (most probably) breaks the current implementation of set_exception_handler()
Diffstat (limited to 'Zend/zend_opcode.c')
-rw-r--r--Zend/zend_opcode.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 122711604f..05402af5ce 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -83,10 +83,12 @@ void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_siz
op_array->scope = NULL;
op_array->brk_cont_array = NULL;
+ op_array->try_catch_array = NULL;
op_array->last_brk_cont = 0;
op_array->current_brk_cont = -1;
op_array->static_variables = NULL;
+ op_array->last_try_catch = 0;
op_array->return_reference = 0;
op_array->done_pass_two = 0;
@@ -229,6 +231,9 @@ ZEND_API void destroy_op_array(zend_op_array *op_array TSRMLS_DC)
if (op_array->brk_cont_array) {
efree(op_array->brk_cont_array);
}
+ if (op_array->try_catch_array) {
+ efree(op_array->try_catch_array);
+ }
if (op_array->done_pass_two) {
zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_op_array_dtor_handler, op_array TSRMLS_CC);
}