]> granicus.if.org Git - php/commitdiff
Fixed malloc/emalloc mess
authorDmitry Stogov <dmitry@zend.com>
Thu, 15 Jan 2015 15:05:58 +0000 (18:05 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 15 Jan 2015 15:05:58 +0000 (18:05 +0300)
Zend/zend_hash.c

index 31d25576c373bc360797fd43546e816fbb1aa30e..25461067d4deee7cea7d7c18fa8895d4d0c7edbd 100644 (file)
@@ -170,7 +170,7 @@ ZEND_API void zend_hash_to_packed(HashTable *ht)
        HANDLE_BLOCK_INTERRUPTIONS();
        ht->u.flags |= HASH_FLAG_PACKED;
        ht->nTableMask = 0;
-       ht->arData = erealloc(ht->arData, ht->nTableSize * sizeof(Bucket));
+       ht->arData = (Bucket *) perealloc(ht->arData, ht->nTableSize * sizeof(Bucket), ht->u.flags & HASH_FLAG_PERSISTENT);
        ht->arHash = (uint32_t*)&uninitialized_bucket;
        HANDLE_UNBLOCK_INTERRUPTIONS();
 }
@@ -1754,7 +1754,7 @@ ZEND_API int zend_hash_sort_ex(HashTable *ht, sort_func_t sort, compare_func_t c
                if (renumber) {
                        ht->u.flags |= HASH_FLAG_PACKED;
                        ht->nTableMask = 0;
-                       ht->arData = erealloc(ht->arData, ht->nTableSize * sizeof(Bucket));
+                       ht->arData = perealloc(ht->arData, ht->nTableSize * sizeof(Bucket), ht->u.flags & HASH_FLAG_PERSISTENT);
                        ht->arHash = (uint32_t*)&uninitialized_bucket;
                } else {
                        zend_hash_rehash(ht);