Commit 7a3785a78bd for php.net
commit 7a3785a78bd0037a4c7960c52a2a9231c9bc3bb9
Author: Weilin Du <weilindu@php.net>
Date: Sun Aug 16 02:29:07 2026 +0800
Zend: Use pointer hash lookup for classes
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index cc99a75a6ab..b48352a5aaf 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -1201,7 +1201,6 @@ ZEND_API bool zend_is_valid_class_name(const zend_string *name) {
ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, zend_string *key, uint32_t flags) /* {{{ */
{
zend_class_entry *ce = NULL;
- zval *zv;
zend_string *lc_name;
zend_string *autoload_name;
uint32_t ce_cache = 0;
@@ -1229,12 +1228,11 @@ ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, zend_string *
}
}
- zv = zend_hash_find(EG(class_table), lc_name);
- if (zv) {
+ ce = zend_hash_find_ptr(EG(class_table), lc_name);
+ if (ce) {
if (!key) {
zend_string_release_ex(lc_name, 0);
}
- ce = (zend_class_entry*)Z_PTR_P(zv);
if (UNEXPECTED(!(ce->ce_flags & ZEND_ACC_LINKED))) {
if ((flags & ZEND_FETCH_CLASS_ALLOW_UNLINKED) ||
((flags & ZEND_FETCH_CLASS_ALLOW_NEARLY_LINKED) &&