diff options
author | Stig Bakken <ssb@php.net> | 2002-08-16 00:41:37 +0000 |
---|---|---|
committer | Stig Bakken <ssb@php.net> | 2002-08-16 00:41:37 +0000 |
commit | 04788f9503000845949395a356fbb134ee142fcc (patch) | |
tree | f0555712ea9b11124e6159007fb953292bb8ded0 /Zend/zend_execute_API.c | |
parent | 197c300860d10cfc6da2284790b291c4363e55f7 (diff) | |
download | php-git-04788f9503000845949395a356fbb134ee142fcc.tar.gz |
@- Added set_exception_handler() function for registering a global,
@ catch-all exception handling function (Stig)
- Added set_exception_handler() function for registering a global,
catch-all exception handling function (Stig)
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r-- | Zend/zend_execute_API.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index bb14adf93d..7f7d8bce89 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -158,6 +158,7 @@ void init_executor(TSRMLS_D) EG(user_error_handler) = NULL; zend_ptr_stack_init(&EG(user_error_handlers)); + zend_ptr_stack_init(&EG(user_exception_handlers)); EG(orig_error_reporting) = EG(error_reporting); zend_objects_store_init(&EG(objects_store), 1024); @@ -232,9 +233,17 @@ void shutdown_executor(TSRMLS_D) FREE_ZVAL(EG(user_error_handler)); } + if (EG(user_exception_handler)) { + zval_dtor(EG(user_exception_handler)); + FREE_ZVAL(EG(user_exception_handler)); + } + zend_ptr_stack_clean(&EG(user_error_handlers), ZVAL_DESTRUCTOR, 1); zend_ptr_stack_destroy(&EG(user_error_handlers)); + zend_ptr_stack_clean(&EG(user_exception_handlers), ZVAL_DESTRUCTOR, 1); + zend_ptr_stack_destroy(&EG(user_exception_handlers)); + EG(error_reporting) = EG(orig_error_reporting); zend_objects_store_destroy(&EG(objects_store)); } zend_end_try(); |