diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 24c4ced4b43..02c316a95a2 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -664,6 +664,7 @@ static zend_always_inline Bucket *zend_hash_find_bucket(const HashTable *ht, zen if (known_hash) { h = ZSTR_H(key); + ZEND_ASSERT(h != 0 && "Hash must be known"); } else { h = zend_string_hash_val(key); } diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 820520c0aed..64cdc053f76 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -5116,18 +5116,15 @@ ZEND_METHOD(ReflectionClass, getTraitAliases) if (!class_name) { uint32_t j = 0; - zval *zv; - zend_class_entry *trait; zend_string *lcname = zend_string_tolower(cur_ref->method_name); for (j = 0; j < ce->num_traits; j++) { - zv = zend_hash_find_known_hash(CG(class_table), ce->trait_names[j].lc_name); - if (zv) { - trait = Z_CE_P(zv); - if (zend_hash_exists(&trait->function_table, lcname)) { - class_name = trait->name; - break; - } + zend_class_entry *trait = + zend_hash_find_ptr(CG(class_table), ce->trait_names[j].lc_name); + ZEND_ASSERT(trait && "Trait must exist"); + if (zend_hash_exists(&trait->function_table, lcname)) { + class_name = trait->name; + break; } } zend_string_release_ex(lcname, 0);