diff options
author | Aaron Piotrowski <aaron@trowski.com> | 2015-07-07 11:37:33 -0500 |
---|---|---|
committer | Aaron Piotrowski <aaron@trowski.com> | 2015-07-07 12:10:55 -0500 |
commit | 29c3cd44485fb8e43b29c46b1f9451e99bca92c8 (patch) | |
tree | ce1efd4de702714e90ce646f49e86a3456d4933c | |
parent | 54bcc6280c689a5b63f2c4d026e0ceeb7012b000 (diff) | |
download | php-git-29c3cd44485fb8e43b29c46b1f9451e99bca92c8.tar.gz |
Allow NULL for exception_ce
-rw-r--r-- | Zend/zend.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index 9e8613aa55..e5fd2e8bee 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -1296,11 +1296,20 @@ ZEND_API void zend_throw_error(zend_class_entry *exception_ce, const char *forma { va_list va; char *message = NULL; + + if (exception_ce) { + if (!instanceof_function(exception_ce, zend_ce_error)) { + zend_error(E_NOTICE, "Error exceptions must be derived from Error"); + exception_ce = zend_ce_error; + } + } else { + exception_ce = zend_ce_error; + } va_start(va, format); zend_vspprintf(&message, 0, format, va); - // TODO: we can't convert compile-time errors to exceptions yet??? + //TODO: we can't convert compile-time errors to exceptions yet??? if (EG(current_execute_data) && !CG(in_compilation)) { zend_throw_exception(exception_ce, message, 0); } else { |