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**)&reg_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**)&reg_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**)&reg_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**)&reg_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**)&reg_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**)&reg_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

Reply via email to