diff options
author | Dmitry Stogov <dmitry@zend.com> | 2018-01-10 14:11:23 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2018-01-10 14:11:23 +0300 |
commit | d7a0d48d59d493204cd527a1b6ebf12daedb805c (patch) | |
tree | 2e415bb5bbe98d96c3f45ba8e85060e4daca7655 | |
parent | 20a1124f6302330b3123ae202deb2deb62c9a3e2 (diff) | |
parent | abd31deb9130f3fd31b661c0aea6f383aa6b90d5 (diff) | |
download | php-git-d7a0d48d59d493204cd527a1b6ebf12daedb805c.tar.gz |
Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
minor optimize on strstr
-rw-r--r-- | ext/standard/string.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c index 84dd2d8846..97a20fb295 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -3475,15 +3475,13 @@ PHP_FUNCTION(strtr) RETURN_STR_COPY(str); } else if (zend_hash_num_elements(pats) == 1) { zend_long num_key; - zend_string *str_key, *replace, *tmp_replace; - zval *entry, tmp; + zend_string *str_key, *tmp_str, *replace, *tmp_replace; + zval *entry; ZEND_HASH_FOREACH_KEY_VAL(pats, num_key, str_key, entry) { - ZVAL_UNDEF(&tmp); + tmp_str = NULL; if (UNEXPECTED(!str_key)) { - ZVAL_LONG(&tmp, num_key); - convert_to_string(&tmp); - str_key = Z_STR(tmp); + str_key = tmp_str = zend_long_to_str(num_key); } replace = zval_get_tmp_string(entry, &tmp_replace); if (ZSTR_LEN(str_key) < 1) { @@ -3501,8 +3499,8 @@ PHP_FUNCTION(strtr) ZSTR_VAL(str_key), ZSTR_LEN(str_key), ZSTR_VAL(replace), ZSTR_LEN(replace), &dummy)); } + zend_tmp_string_release(tmp_str); zend_tmp_string_release(tmp_replace); - zval_dtor(&tmp); return; } ZEND_HASH_FOREACH_END(); } else { |