com php-src: Use fast zpp in mb_strlen(): ext/mbstrin g/mbstring.c
| From: | Nikita Popov | Date: | Thu, 20 Jul 2017 19:41:52 +0000 |
| Subject: | com php-src: Use fast zpp in mb_strlen(): ext/mbstrin g/mbstring.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-98669@lists.php.net to get a copy of this message | ||
Commit: 1388751f10799a240fa4cd62285c3b5c7acb235b
Author: Nikita Popov <nikita.ppv@gmail.com> Thu, 20 Jul 2017 20:38:11 +0200
Parents: b3c1d9d1118438a3dae3544447db2b39ca5cfa25
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=1388751f10799a240fa4cd62285c3b5c7acb235b
Log:
Use fast zpp in mb_strlen()
For short strings this function is now sufficiently fast for zpp
to be a bottleneck.
Changed paths:
M ext/mbstring/mbstring.c
Diff:
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 97e9bfc..17122dd 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -2338,15 +2338,19 @@ PHP_FUNCTION(mb_strlen)
{
int n;
mbfl_string string;
- char *enc_name = NULL;
- size_t enc_name_len;
+ char *str, *enc_name = NULL;
+ size_t str_len, enc_name_len;
mbfl_string_init(&string);
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|s", (char **)&string.val,
&string.len, &enc_name, &enc_name_len) == FAILURE) {
- return;
- }
+ ZEND_PARSE_PARAMETERS_START(1, 2)
+ Z_PARAM_STRING(str, str_len)
+ Z_PARAM_OPTIONAL
+ Z_PARAM_STRING(enc_name, enc_name_len)
+ ZEND_PARSE_PARAMETERS_END();
+ string.val = (unsigned char *) str;
+ string.len = str_len;
string.no_language = MBSTRG(language);
string.encoding = php_mb_get_encoding(enc_name);
if (!string..encoding) {