summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/string.c40
1 files changed, 18 insertions, 22 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index e8fe75cad1..c06de62a80 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -1462,33 +1462,29 @@ PHPAPI zend_string *php_string_tolower(zend_string *s)
unsigned char *c;
const unsigned char *e;
- if (EXPECTED(!BG(locale_changed))) {
- return zend_string_tolower(s);
- } else {
- c = (unsigned char *)ZSTR_VAL(s);
- e = c + ZSTR_LEN(s);
+ c = (unsigned char *)ZSTR_VAL(s);
+ e = c + ZSTR_LEN(s);
- while (c < e) {
- if (isupper(*c)) {
- register unsigned char *r;
- zend_string *res = zend_string_alloc(ZSTR_LEN(s), 0);
+ while (c < e) {
+ if (isupper(*c)) {
+ register unsigned char *r;
+ zend_string *res = zend_string_alloc(ZSTR_LEN(s), 0);
- if (c != (unsigned char*)ZSTR_VAL(s)) {
- memcpy(ZSTR_VAL(res), ZSTR_VAL(s), c - (unsigned char*)ZSTR_VAL(s));
- }
- r = c + (ZSTR_VAL(res) - ZSTR_VAL(s));
- while (c < e) {
- *r = tolower(*c);
- r++;
- c++;
- }
- *r = '\0';
- return res;
+ if (c != (unsigned char*)ZSTR_VAL(s)) {
+ memcpy(ZSTR_VAL(res), ZSTR_VAL(s), c - (unsigned char*)ZSTR_VAL(s));
}
- c++;
+ r = c + (ZSTR_VAL(res) - ZSTR_VAL(s));
+ while (c < e) {
+ *r = tolower(*c);
+ r++;
+ c++;
+ }
+ *r = '\0';
+ return res;
}
- return zend_string_copy(s);
+ c++;
}
+ return zend_string_copy(s);
}
/* }}} */