summaryrefslogtreecommitdiff
path: root/Zend/zend.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-04-01 13:06:38 +0800
committerXinchen Hui <laruence@php.net>2015-04-01 13:06:38 +0800
commitfd0baec2e9afbd6706f16c26d32ec038c192d7e5 (patch)
tree0ba31b7242cc63451c84fb9fbb1172bffa9314e9 /Zend/zend.c
parentaf812eac4c9727bdfb90cac1a35ab53d741cb7eb (diff)
parented772e1a998ca72fc1c354fcefc05149ca7a2a56 (diff)
downloadphp-git-fd0baec2e9afbd6706f16c26d32ec038c192d7e5.tar.gz
Merge branch 'master' of https://git.php.net/repository/php-src
Diffstat (limited to 'Zend/zend.c')
-rw-r--r--Zend/zend.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/Zend/zend.c b/Zend/zend.c
index 6bb614fab5..1f764445bd 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -1017,18 +1017,22 @@ static void zend_error_va_list(int type, const char *format, va_list args)
zend_array *symbol_table;
if (type & E_EXCEPTION) {
- char *message = NULL;
+ type &= ~E_EXCEPTION;
+ //TODO: we can't convert compile-time errors to exceptions yet???
+ if (EG(current_execute_data) && !CG(in_compilation)) {
+ char *message = NULL;
#if !defined(HAVE_NORETURN) || defined(HAVE_NORETURN_ALIAS)
- va_start(args, format);
+ va_start(args, format);
#endif
- zend_vspprintf(&message, 0, format, args);
- zend_throw_exception(zend_get_engine_exception(), message, type & ~E_EXCEPTION);
- efree(message);
+ zend_vspprintf(&message, 0, format, args);
+ zend_throw_exception(zend_get_engine_exception(), message, type);
+ efree(message);
#if !defined(HAVE_NORETURN) || defined(HAVE_NORETURN_ALIAS)
- va_end(args);
+ va_end(args);
#endif
- return;
+ return;
+ }
}
/* Report about uncaught exception in case of fatal errors */