diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-04-16 12:19:37 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-04-16 12:21:20 +0200 |
commit | bd6ebf40b205387457d51288691e31a05ce7ad27 (patch) | |
tree | 3ca211f1ec633d96b9a812c5ccea06415d2ad2d3 | |
parent | 2bdd212887d4ee3fd606df18b12038567f33b90b (diff) | |
download | php-git-bd6ebf40b205387457d51288691e31a05ce7ad27.tar.gz |
Don't overwrite iterator count during real init
-rw-r--r-- | Zend/zend_hash.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 5358f0d7d0..e4024d9688 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -129,7 +129,8 @@ static zend_always_inline void zend_hash_real_init_packed_ex(HashTable *ht) data = emalloc(HT_SIZE_EX(ht->nTableSize, HT_MIN_MASK)); } HT_SET_DATA_ADDR(ht, data); - HT_FLAGS(ht) = HASH_FLAG_PACKED | HASH_FLAG_STATIC_KEYS; + /* Don't overwrite iterator count. */ + ht->u.v.flags = HASH_FLAG_PACKED | HASH_FLAG_STATIC_KEYS; HT_HASH_RESET_PACKED(ht); } @@ -144,7 +145,8 @@ static zend_always_inline void zend_hash_real_init_mixed_ex(HashTable *ht) data = emalloc(HT_SIZE_EX(HT_MIN_SIZE, HT_SIZE_TO_MASK(HT_MIN_SIZE))); ht->nTableMask = HT_SIZE_TO_MASK(HT_MIN_SIZE); HT_SET_DATA_ADDR(ht, data); - HT_FLAGS(ht) = HASH_FLAG_STATIC_KEYS; + /* Don't overwrite iterator count. */ + ht->u.v.flags = HASH_FLAG_STATIC_KEYS; #ifdef __SSE2__ do { __m128i xmm0 = _mm_setzero_si128(); |