]> granicus.if.org Git - php/commitdiff
HashTable copying optimization (Matt Wilmas)
authorDmitry Stogov <dmitry@php.net>
Wed, 8 Nov 2006 16:02:29 +0000 (16:02 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 8 Nov 2006 16:02:29 +0000 (16:02 +0000)
Zend/zend_hash.c

index be2d770f9c41bb51bd4bdd5aea22b4e142817fa7..0345650af1d32fba4f42f41e118e9ed3c4e65f4a 100644 (file)
@@ -1005,7 +1005,7 @@ ZEND_API void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_fun
                if (p->nKeyLength == 0) {
                        zend_hash_index_update(target, p->h, p->pData, size, &new_entry);
                } else {
-                       zend_u_hash_update(target, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength, p->pData, size, &new_entry);
+                       zend_u_hash_quick_update(target, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength, p->h, p->pData, size, &new_entry);
                }
                if (pCopyConstructor) {
                        pCopyConstructor(new_entry);
@@ -1032,7 +1032,7 @@ ZEND_API void _zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_f
                                pCopyConstructor(t);
                        }
                } else {
-                       if (_zend_u_hash_add_or_update(target, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength, p->pData, size, &t, mode ZEND_FILE_LINE_RELAY_CC)==SUCCESS && pCopyConstructor) {
+                       if (_zend_u_hash_quick_add_or_update(target, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength, p->h, p->pData, size, &t, mode ZEND_FILE_LINE_RELAY_CC)==SUCCESS && pCopyConstructor) {
                                pCopyConstructor(t);
                        }
                }