felipe Sun, 10 Jul 2011 02:00:00 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=313100
Log: - Minor optimization, use the computed hash when available Changed paths: U php/php-src/branches/PHP_5_4/Zend/zend_API.c U php/php-src/trunk/Zend/zend_API.c Modified: php/php-src/branches/PHP_5_4/Zend/zend_API.c =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend_API.c 2011-07-10 01:07:50 UTC (rev 313099) +++ php/php-src/branches/PHP_5_4/Zend/zend_API.c 2011-07-10 02:00:00 UTC (rev 313100) @@ -2023,10 +2023,18 @@ } fname_len = strlen(ptr->fname); lowercase_name = zend_new_interned_string(zend_str_tolower_dup(ptr->fname, fname_len), fname_len + 1, 1 TSRMLS_CC); - if (zend_hash_add(target_function_table, lowercase_name, fname_len+1, &function, sizeof(zend_function), (void**)®_function) == FAILURE) { - unload=1; - str_efree(lowercase_name); - break; + if (IS_INTERNED(lowercase_name)) { + if (zend_hash_quick_add(target_function_table, lowercase_name, fname_len+1, INTERNED_HASH(lowercase_name), &function, sizeof(zend_function), (void**)®_function) == FAILURE) { + unload=1; + str_efree(lowercase_name); + break; + } + } else { + if (zend_hash_add(target_function_table, lowercase_name, fname_len+1, &function, sizeof(zend_function), (void**)®_function) == FAILURE) { + unload=1; + str_efree(lowercase_name); + break; + } } if (scope) { /* Look for ctor, dtor, clone Modified: php/php-src/trunk/Zend/zend_API.c =================================================================== --- php/php-src/trunk/Zend/zend_API.c 2011-07-10 01:07:50 UTC (rev 313099) +++ php/php-src/trunk/Zend/zend_API.c 2011-07-10 02:00:00 UTC (rev 313100) @@ -2023,10 +2023,18 @@ } fname_len = strlen(ptr->fname); lowercase_name = zend_new_interned_string(zend_str_tolower_dup(ptr->fname, fname_len), fname_len + 1, 1 TSRMLS_CC); - if (zend_hash_add(target_function_table, lowercase_name, fname_len+1, &function, sizeof(zend_function), (void**)®_function) == FAILURE) { - unload=1; - str_efree(lowercase_name); - break; + if (IS_INTERNED(lowercase_name)) { + if (zend_hash_quick_add(target_function_table, lowercase_name, fname_len+1, INTERNED_HASH(lowercase_name), &function, sizeof(zend_function), (void**)®_function) == FAILURE) { + unload=1; + str_efree(lowercase_name); + break; + } + } else { + if (zend_hash_add(target_function_table, lowercase_name, fname_len+1, &function, sizeof(zend_function), (void**)®_function) == FAILURE) { + unload=1; + str_efree(lowercase_name); + break; + } } if (scope) { /* Look for ctor, dtor, clone
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php