diff options
author | Anthony Ferrara <ircmaxell@gmail.com> | 2015-03-18 12:23:09 -0400 |
---|---|---|
committer | Anthony Ferrara <ircmaxell@gmail.com> | 2015-03-18 12:23:09 -0400 |
commit | 7feebead1b70714c45bf302e0356b4cb8047fba0 (patch) | |
tree | f709cbcab7e07360ea6146c07543815d6c1463bb /Zend/zend.c | |
parent | d22bfb8aa68fe61eae1c0e124bd3002c7d42e5c4 (diff) | |
download | php-git-7feebead1b70714c45bf302e0356b4cb8047fba0.tar.gz |
Refactor error implementation significantly to centralize error mode behavior. Add zend_internal_type_error() function
Diffstat (limited to 'Zend/zend.c')
-rw-r--r-- | Zend/zend.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index fe507d7154..8ed8b2abc1 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -1277,6 +1277,35 @@ ZEND_API ZEND_NORETURN void zend_error_noreturn(int type, const char *format, .. # endif #endif +ZEND_API void zend_type_error(const char *format, ...) /* {{{ */ +{ + va_list va; + char *message = NULL; + + va_start(va, format); + zend_vspprintf(&message, 0, format, va); + zend_throw_exception(zend_get_type_exception(), message, 0); + efree(message); + va_end(va); +} /* }}} */ + +ZEND_API void zend_internal_type_error(zend_bool strict, const char *format, ...) /* {{{ */ +{ + va_list va; + char *message = NULL; + + va_start(va, format); + zend_vspprintf(&message, 0, format, va); + if (strict) { + zend_throw_exception(zend_get_type_exception(), message, 0); + } else { + zend_error(E_WARNING, message); + } + efree(message); + + va_end(va); +} /* }}} */ + ZEND_API void zend_output_debug_string(zend_bool trigger_break, const char *format, ...) /* {{{ */ { #if ZEND_DEBUG |