summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Piotrowski <aaron@trowski.com>2015-07-07 11:37:33 -0500
committerAaron Piotrowski <aaron@trowski.com>2015-07-07 12:10:55 -0500
commit29c3cd44485fb8e43b29c46b1f9451e99bca92c8 (patch)
treece1efd4de702714e90ce646f49e86a3456d4933c
parent54bcc6280c689a5b63f2c4d026e0ceeb7012b000 (diff)
downloadphp-git-29c3cd44485fb8e43b29c46b1f9451e99bca92c8.tar.gz
Allow NULL for exception_ce
-rw-r--r--Zend/zend.c11
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 {