summaryrefslogtreecommitdiff
path: root/ext/mbstring/mbstring.c
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2020-04-03 19:14:42 +0200
committerGeorge Peter Banyard <girgias@php.net>2020-04-05 01:44:38 +0200
commit07062e1fc58b09e459eff2265b89985124e3ada8 (patch)
tree0eeb3f64c7bb8cfcaa596ca46f37025049748702 /ext/mbstring/mbstring.c
parentbd52b62ae0bba8490a15e6d09d234f93784e1d2d (diff)
downloadphp-git-07062e1fc58b09e459eff2265b89985124e3ada8.tar.gz
Promote some warnings to ValueError in mbstring
Promoted warnings are: * Empty encoding lists * Unknown language * Start and Width out of bound
Diffstat (limited to 'ext/mbstring/mbstring.c')
-rw-r--r--ext/mbstring/mbstring.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index c2c7954af9..454440ef6e 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -1365,11 +1365,12 @@ PHP_FUNCTION(mb_language)
} else {
zend_string *ini_name = zend_string_init("mbstring.language", sizeof("mbstring.language") - 1, 0);
if (FAILURE == zend_alter_ini_entry(ini_name, name, PHP_INI_USER, PHP_INI_STAGE_RUNTIME)) {
- php_error_docref(NULL, E_WARNING, "Unknown language \"%s\"", ZSTR_VAL(name));
- RETVAL_FALSE;
- } else {
- RETVAL_TRUE;
+ zend_argument_value_error(1, "must be a valid language, \"%s\" given", ZSTR_VAL(name));
+ zend_string_release_ex(ini_name, 0);
+ RETURN_THROWS();
}
+ // TODO Make return void
+ RETVAL_TRUE;
zend_string_release_ex(ini_name, 0);
}
}
@@ -1568,8 +1569,8 @@ PHP_FUNCTION(mb_detect_order)
if (size == 0) {
efree(list);
- php_error_docref(NULL, E_WARNING, "Must specify at least one encoding");
- RETURN_FALSE;
+ zend_argument_value_error(1, "must specify at least one encoding");
+ RETURN_THROWS();
}
if (MBSTRG(current_detect_order_list)) {
@@ -2481,8 +2482,8 @@ PHP_FUNCTION(mb_strimwidth)
}
if (from < 0 || (size_t)from > str_len) {
- php_error_docref(NULL, E_WARNING, "Start position is out of range");
- RETURN_FALSE;
+ zend_argument_value_error(2, "is out of range");
+ RETURN_THROWS();
}
if (width < 0) {
@@ -2490,8 +2491,8 @@ PHP_FUNCTION(mb_strimwidth)
}
if (width < 0) {
- php_error_docref(NULL, E_WARNING, "Width is out of range");
- RETURN_FALSE;
+ zend_argument_value_error(3, "is out of range");
+ RETURN_THROWS();
}
if (trimmarker) {
@@ -2721,8 +2722,8 @@ PHP_FUNCTION(mb_convert_encoding)
if (!num_from_encodings) {
efree(from_encodings);
- php_error_docref(NULL, E_WARNING, "Must specify at least one encoding");
- RETURN_FALSE;
+ zend_argument_value_error(3, "must specify at least one encoding");
+ RETURN_THROWS();
}
if (input_str) {
@@ -2907,8 +2908,8 @@ PHP_FUNCTION(mb_detect_encoding)
if (size == 0) {
efree(elist);
- php_error_docref(NULL, E_WARNING, "Must specify at least one encoding");
- RETURN_FALSE;
+ zend_argument_value_error(2, "must specify at least one encoding");
+ RETURN_THROWS();
}
if (ZEND_NUM_ARGS() < 3) {
@@ -3301,8 +3302,8 @@ PHP_FUNCTION(mb_convert_variables)
if (elistsz == 0) {
efree(elist);
- php_error_docref(NULL, E_WARNING, "Must specify at least one encoding");
- RETURN_FALSE;
+ zend_argument_value_error(2, "must specify at least one encoding");
+ RETURN_THROWS();
}
if (elistsz == 1) {