dmitry Mon, 05 Jul 2010 12:03:08 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=301001
Log: Reduced overhead of ext/mbstring initialization Changed paths: U php/php-src/trunk/ext/mbstring/mbstring.c U php/php-src/trunk/ext/mbstring/php_mbregex.c Modified: php/php-src/trunk/ext/mbstring/mbstring.c =================================================================== --- php/php-src/trunk/ext/mbstring/mbstring.c 2010-07-05 12:00:09 UTC (rev 301000) +++ php/php-src/trunk/ext/mbstring/mbstring.c 2010-07-05 12:03:08 UTC (rev 301001) @@ -1051,58 +1051,42 @@ int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, uint new_value_length TSRMLS_DC) { enum mbfl_no_encoding no_encoding; - const char *enc_name = NULL; - uint enc_name_len = 0; - no_encoding = new_value ? mbfl_name2no_encoding(new_value): - mbfl_no_encoding_invalid; - if (no_encoding != mbfl_no_encoding_invalid) { - enc_name = new_value; - enc_name_len = new_value_length; - } else { + if (!new_value + || !*new_value + || (no_encoding = mbfl_name2no_encoding(new_value)) == mbfl_no_encoding_invalid) { switch (MBSTRG(language)) { case mbfl_no_language_uni: - enc_name = "UTF-8"; - enc_name_len = sizeof("UTF-8") - 1; + no_encoding = mbfl_no_encoding_utf8; break; case mbfl_no_language_japanese: - enc_name = "EUC-JP"; - enc_name_len = sizeof("EUC-JP") - 1; + no_encoding = mbfl_no_encoding_euc_jp; break; case mbfl_no_language_korean: - enc_name = "EUC-KR"; - enc_name_len = sizeof("EUC-KR") - 1; + no_encoding = mbfl_no_encoding_euc_kr; break; case mbfl_no_language_simplified_chinese: - enc_name = "EUC-CN"; - enc_name_len = sizeof("EUC-CN") - 1; + no_encoding = mbfl_no_encoding_euc_cn; break; case mbfl_no_language_traditional_chinese: - enc_name = "EUC-TW"; - enc_name_len = sizeof("EUC-TW") - 1; + no_encoding = mbfl_no_encoding_euc_tw; break; case mbfl_no_language_russian: - enc_name = "KOI8-R"; - enc_name_len = sizeof("KOI8-R") - 1; + no_encoding = mbfl_no_encoding_koi8r; break; case mbfl_no_language_german: - enc_name = "ISO-8859-15"; - enc_name_len = sizeof("ISO-8859-15") - 1; + no_encoding = mbfl_no_encoding_8859_15; break; case mbfl_no_language_armenian: - enc_name = "ArmSCII-8"; - enc_name_len = sizeof("ArmSCII-8") - 1; + no_encoding = mbfl_no_encoding_armscii8; break; case mbfl_no_language_turkish: - enc_name = "ISO-8859-9"; - enc_name_len = sizeof("ISO-8859-9") - 1; + no_encoding = mbfl_no_encoding_8859_9; break; default: - enc_name = "ISO-8859-1"; - enc_name_len = sizeof("ISO-8859-1") - 1; + no_encoding = mbfl_no_encoding_8859_1; break; } - no_encoding = mbfl_name2no_encoding(enc_name); } MBSTRG(internal_encoding) = no_encoding; MBSTRG(current_internal_encoding) = no_encoding; Modified: php/php-src/trunk/ext/mbstring/php_mbregex.c =================================================================== --- php/php-src/trunk/ext/mbstring/php_mbregex.c 2010-07-05 12:00:09 UTC (rev 301000) +++ php/php-src/trunk/ext/mbstring/php_mbregex.c 2010-07-05 12:03:08 UTC (rev 301001) @@ -372,7 +372,7 @@ const char *p; php_mb_regex_enc_name_map_t *mapping; - if (pname == NULL) { + if (pname == NULL || !*pname) { return ONIG_ENCODING_UNDEF; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php