[PHP-CVS] [php-src] master: Zend: Use pointer hash lookup for classes
[email protected] (Weilin Du)
| Newsgroups | php.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: Weilin Du (LamentXU123)
Date: 2026-08-16T16:35:06+08:00
Commit: https://github.com/php/php-src/commit/7a3785a78bd0037a4c7960c52a2a9231c9bc3bb9
Raw diff: https://github.com/php/php-src/commit/7a3785a78bd0037a4c7960c52a2a9231c9bc3bb9.diff
Zend: Use pointer hash lookup for classes
Changed paths:
M Zend/zend_execute_API.c
Diff:
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index cc99a75a6ab9..b48352a5aaf3 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) &&