diff options
author | Davey Shafik <me@daveyshafik.com> | 2016-08-30 12:09:26 -0700 |
---|---|---|
committer | Davey Shafik <me@daveyshafik.com> | 2016-08-30 19:35:56 -0700 |
commit | 12ee17d5e079bbf02ecc7a8e4567977f4ebaf78d (patch) | |
tree | 070ccb29fba6d9c8c5af5e837774993e1c036e9b /Zend/zend_exceptions.c | |
parent | 02fb46e17ca38db0b339fd4832a03925493f2837 (diff) | |
download | php-git-12ee17d5e079bbf02ecc7a8e4567977f4ebaf78d.tar.gz |
Implement \ArgumentCountError exception
Diffstat (limited to 'Zend/zend_exceptions.c')
-rw-r--r-- | Zend/zend_exceptions.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 5301850310..dc073de633 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -36,6 +36,7 @@ ZEND_API zend_class_entry *zend_ce_error_exception; ZEND_API zend_class_entry *zend_ce_error; ZEND_API zend_class_entry *zend_ce_parse_error; ZEND_API zend_class_entry *zend_ce_type_error; +ZEND_API zend_class_entry *zend_ce_argument_count_error; ZEND_API zend_class_entry *zend_ce_arithmetic_error; ZEND_API zend_class_entry *zend_ce_division_by_zero_error; @@ -709,7 +710,7 @@ ZEND_METHOD(exception, __toString) ZVAL_UNDEF(&trace); } - if (Z_OBJCE_P(exception) == zend_ce_type_error && strstr(ZSTR_VAL(message), ", called in ")) { + if ((Z_OBJCE_P(exception) == zend_ce_type_error || Z_OBJCE_P(exception) == zend_ce_argument_count_error) && strstr(ZSTR_VAL(message), ", called in ")) { zend_string *real_message = zend_strpprintf(0, "%s and defined", ZSTR_VAL(message)); zend_string_release(message); message = real_message; @@ -859,6 +860,10 @@ void zend_register_default_exception(void) /* {{{ */ zend_ce_type_error = zend_register_internal_class_ex(&ce, zend_ce_error); zend_ce_type_error->create_object = zend_default_exception_new; + INIT_CLASS_ENTRY(ce, "ArgumentCountError", NULL); + zend_ce_argument_count_error = zend_register_internal_class_ex(&ce, zend_ce_type_error); + zend_ce_argument_count_error->create_object = zend_default_exception_new; + INIT_CLASS_ENTRY(ce, "ArithmeticError", NULL); zend_ce_arithmetic_error = zend_register_internal_class_ex(&ce, zend_ce_error); zend_ce_arithmetic_error->create_object = zend_default_exception_new; |