diff options
author | Xinchen Hui <laruence@php.net> | 2015-04-01 13:06:38 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2015-04-01 13:06:38 +0800 |
commit | fd0baec2e9afbd6706f16c26d32ec038c192d7e5 (patch) | |
tree | 0ba31b7242cc63451c84fb9fbb1172bffa9314e9 /Zend/zend.c | |
parent | af812eac4c9727bdfb90cac1a35ab53d741cb7eb (diff) | |
parent | ed772e1a998ca72fc1c354fcefc05149ca7a2a56 (diff) | |
download | php-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.c | 18 |
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 */ |