From: Xinchen Hui Date: Wed, 10 Jan 2018 10:22:59 +0000 (+0800) Subject: minor optimize on strstr X-Git-Tag: php-7.3.0alpha1~670^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6b9e2b79a0f32e04ec837a2c793f707c06d2a89a;p=php minor optimize on strstr --- 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 {