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()
This commit is contained in:
Zeev Suraski 2004-02-03 12:17:09 +00:00
parent 330d9f6352
commit 9e60cb553f
11 changed files with 674 additions and 569 deletions

View file

@ -435,7 +435,7 @@ ZEND_API void zend_throw_exception_ex(zend_class_entry *exception_ce, long code
efree(message);
EG(exception) = ex;
zend_throw_exception_internal(ex TSRMLS_CC);
}
/* at the moment we can't use zend_throw_exception_ex because we don't have a protable
@ -465,7 +465,7 @@ ZEND_API void zend_throw_exception(zend_class_entry *exception_ce, char *message
zend_update_property_long(default_exception_ptr, ex, "code", sizeof("code")-1, code TSRMLS_CC);
}
EG(exception) = ex;
zend_throw_exception_internal(ex TSRMLS_CC);
}
static void zend_error_va(int type, const char *file, uint lineno, const char *format, ...)