diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index aa770141cd24d..9498bd3718c86 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -658,15 +658,14 @@ ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(HashTable *ht, HashPosit /* Hash must be known and precomputed before */ static zend_always_inline Bucket *zend_hash_find_bucket(const HashTable *ht, const zend_string *key) { - zend_ulong key_hash = ZSTR_H(key); uint32_t nIndex; uint32_t idx; Bucket *p, *arData; - ZEND_ASSERT(key_hash != 0 && "Hash must be known"); + ZEND_ASSERT(ZSTR_H(key) != 0 && "Hash must be known"); arData = ht->arData; - nIndex = key_hash | ht->nTableMask; + nIndex = ZSTR_H(key) | ht->nTableMask; idx = HT_HASH_EX(arData, nIndex); if (UNEXPECTED(idx == HT_INVALID_IDX)) { @@ -678,7 +677,7 @@ static zend_always_inline Bucket *zend_hash_find_bucket(const HashTable *ht, con } while (1) { - if (p->h == key_hash && + if (p->h == ZSTR_H(key) && EXPECTED(p->key) && zend_string_equal_content(p->key, key)) { return p;