[php-src] master: ext/mbstring: Validate and flag UTF-8 in mb_strlen() to improve performance (#24024)
| From: | Kamil Tekiela via GitHub | Date: | Wed, 30 Sep 2026 17:19:46 +0000 |
| Subject: | [php-src] master: ext/mbstring: Validate and flag UTF-8 in mb_strlen() to improve performance (#24024) | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-141810@lists.php.net to get a copy of this message | ||
Author: Kamil Tekiela (kamil-tekiela)
Committer: GitHub (web-flow)
Pusher: kamil-tekiela
Date: 2026-09-30T18:19:43+01:00
Commit: https://github.com/php/php-src/commit/896653dbd2748af42a76538c53959980411e68a6
Raw diff: https://github.com/php/php-src/commit/896653dbd2748af42a76538c53959980411e68a6.diff
ext/mbstring: Validate and flag UTF-8 in mb_strlen() to improve performance (#24024)
Changed paths:
M UPGRADING
M ext/mbstring/mbstring.c
Diff:
diff --git a/UPGRADING b/UPGRADING
index c46af00cfe25..9692bfd9b2cc 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -89,3 +89,6 @@ PHP 8.7 UPGRADE NOTES
. Improved performance of array_splice() when inserting without removing
elements.
. Improved performance of str_rot13().
+
+- MBString:
+ . Improved performance of mb_strlen for UTF-8 strings.
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index c701a23183bb..1fbb9e524150 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -1836,7 +1836,7 @@ static size_t mb_get_strlen(zend_string *string, const mbfl_encoding
*encoding)
unsigned int char_len = encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2 |
MBFL_ENCTYPE_WCS4);
if (char_len) {
return ZSTR_LEN(string) / char_len;
- } else if (php_mb_is_no_encoding_utf8(encoding->no_encoding) &&
ZSTR_IS_VALID_UTF8(string)) {
+ } else if (php_mb_is_no_encoding_utf8(encoding->no_encoding) &&
mb_check_str_encoding(string, &mbfl_encoding_utf8)) {
return mb_fast_strlen_utf8((unsigned char*)ZSTR_VAL(string), ZSTR_LEN(string));
}