diff options
author | George Peter Banyard <girgias@php.net> | 2020-04-03 19:14:42 +0200 |
---|---|---|
committer | George Peter Banyard <girgias@php.net> | 2020-04-05 01:44:38 +0200 |
commit | 07062e1fc58b09e459eff2265b89985124e3ada8 (patch) | |
tree | 0eeb3f64c7bb8cfcaa596ca46f37025049748702 /ext/mbstring/mbstring.c | |
parent | bd52b62ae0bba8490a15e6d09d234f93784e1d2d (diff) | |
download | php-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.c | 33 |
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) { |