summaryrefslogtreecommitdiff
path: root/Zend/zend.c
diff options
context:
space:
mode:
authorAnthony Ferrara <ircmaxell@gmail.com>2015-03-18 12:23:09 -0400
committerAnthony Ferrara <ircmaxell@gmail.com>2015-03-18 12:23:09 -0400
commit7feebead1b70714c45bf302e0356b4cb8047fba0 (patch)
treef709cbcab7e07360ea6146c07543815d6c1463bb /Zend/zend.c
parentd22bfb8aa68fe61eae1c0e124bd3002c7d42e5c4 (diff)
downloadphp-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.c29
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