com php-src: Specify HashTable size and optimize inserts that may not conflict: Zend/zend_object_handlers.c
| From: | Dmitry Stogov | Date: | Tue, 08 Jul 2014 09:46:03 +0000 |
| Subject: | com php-src: Specify HashTable size and optimize inserts that may not conflict: Zend/zend_object_handlers.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-79331@lists.php.net to get a copy of this message | ||
Commit: 9b9d60a48015f25555ee117d72eb4171afe955d0
Author: Dmitry Stogov <dmitry@zend.com> Tue, 8 Jul 2014 13:46:03 +0400
Parents: 0abd6262692eeb8736d70db5a882f9e796ce4374
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=9b9d60a48015f25555ee117d72eb4171afe955d0
Log:
Specify HashTable size and optimize inserts that may not conflict
Changed paths:
M Zend/zend_object_handlers.c
Diff:
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index 078e662..30794a3 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -75,7 +75,7 @@ ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */
zend_class_entry *ce = zobj->ce;
ALLOC_HASHTABLE(zobj->properties);
- zend_hash_init(zobj->properties, 8, NULL, ZVAL_PTR_DTOR, 0);
+ zend_hash_init(zobj->properties, ce->default_properties_count, NULL, ZVAL_PTR_DTOR, 0);
if (ce->default_properties_count) {
ZEND_HASH_FOREACH_PTR(&ce->properties_info, prop_info) {
if (/*prop_info->ce == ce &&*/
@@ -85,7 +85,7 @@ ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */
zval zv;
ZVAL_INDIRECT(&zv, &zobj->properties_table[prop_info->offset]);
- zend_hash_add(zobj->properties, prop_info->name, &zv);
+ zend_hash_add_new(zobj->properties, prop_info->name, &zv);
}
} ZEND_HASH_FOREACH_END();
while (ce->parent && ce->parent->default_properties_count) {