iliaa Tue Oct 3 17:45:16 2006 UTC Modified files: /php-src/ext/standard string.c streamsfuncs.c array.c Log: MFB: optimize zend_hash_init() with known hash table sizes. http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.598&r2=1.599&diff_format=u Index: php-src/ext/standard/string.c diff -u php-src/ext/standard/string.c:1.598 php-src/ext/standard/string.c:1.599 --- php-src/ext/standard/string.c:1.598 Tue Oct 3 13:44:14 2006 +++ php-src/ext/standard/string.c Tue Oct 3 17:45:16 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: string.c,v 1.598 2006/10/03 13:44:14 tony2001 Exp $ */ +/* $Id: string.c,v 1.599 2006/10/03 17:45:16 iliaa Exp $ */ /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */ @@ -3836,7 +3836,7 @@ int maxlen = 0, len; zval ctmp; - zend_hash_init(tmp_hash, 0, NULL, NULL, 0); + zend_hash_init(tmp_hash, zend_hash_num_elements(hash), NULL, NULL, 0); zend_hash_internal_pointer_reset_ex(hash, &hpos); while (zend_hash_get_current_data_ex(hash, (void **)&entry, &hpos) == SUCCESS) { switch (zend_hash_get_current_key_ex(hash, &string_key, &string_key_len, &num_key, 0, &hpos)) { http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.90&r2=1.91&diff_format=u Index: php-src/ext/standard/streamsfuncs.c diff -u php-src/ext/standard/streamsfuncs.c:1.90 php-src/ext/standard/streamsfuncs.c:1.91 --- php-src/ext/standard/streamsfuncs.c:1.90 Fri Sep 29 13:22:43 2006 +++ php-src/ext/standard/streamsfuncs.c Tue Oct 3 17:45:16 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streamsfuncs.c,v 1.90 2006/09/29 13:22:43 bjori Exp $ */ +/* $Id: streamsfuncs.c,v 1.91 2006/10/03 17:45:16 iliaa Exp $ */ #include "php.h" #include "php_globals.h" @@ -660,7 +660,7 @@ return 0; } ALLOC_HASHTABLE(new_hash); - zend_hash_init(new_hash, 0, NULL, ZVAL_PTR_DTOR, 0); + zend_hash_init(new_hash, zend_hash_num_elements(Z_ARRVAL_P(stream_array)), NULL, ZVAL_PTR_DTOR, 0); for (zend_hash_internal_pointer_reset(Z_ARRVAL_P(stream_array)); zend_hash_get_current_data(Z_ARRVAL_P(stream_array), (void **) &elem) == SUCCESS; @@ -708,7 +708,7 @@ return 0; } ALLOC_HASHTABLE(new_hash); - zend_hash_init(new_hash, 0, NULL, ZVAL_PTR_DTOR, 0); + zend_hash_init(new_hash, zend_hash_num_elements(Z_ARRVAL_P(stream_array)), NULL, ZVAL_PTR_DTOR, 0); for (zend_hash_internal_pointer_reset(Z_ARRVAL_P(stream_array)); zend_hash_get_current_data(Z_ARRVAL_P(stream_array), (void **) &elem) == SUCCESS; http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.387&r2=1.388&diff_format=u Index: php-src/ext/standard/array.c diff -u php-src/ext/standard/array.c:1.387 php-src/ext/standard/array.c:1.388 --- php-src/ext/standard/array.c:1.387 Tue Oct 3 16:36:57 2006 +++ php-src/ext/standard/array.c Tue Oct 3 17:45:16 2006 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.387 2006/10/03 16:36:57 bjori Exp $ */ +/* $Id: array.c,v 1.388 2006/10/03 17:45:16 iliaa Exp $ */ #include "php.h" #include "php_ini.h" @@ -3073,7 +3073,7 @@ zval *tmp; ALLOC_HASHTABLE(ht); - zend_hash_init(ht, 0, NULL, ZVAL_PTR_DTOR, 0); + zend_hash_init(ht, zend_hash_num_elements(return_value->value.ht), NULL, ZVAL_PTR_DTOR, 0); zend_hash_copy(ht, return_value->value.ht, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); return_value->value.ht = ht; } @@ -3449,7 +3449,7 @@ zval *tmp; ALLOC_HASHTABLE(ht); - zend_hash_init(ht, 0, NULL, ZVAL_PTR_DTOR, 0); + zend_hash_init(ht, zend_hash_num_elements(return_value->value.ht), NULL, ZVAL_PTR_DTOR, 0); zend_hash_copy(ht, return_value->value.ht, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); return_value->value.ht = ht; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php