Skip to content

Commit 481f1fc

Browse files
Reflection fixes
1 parent 1875320 commit 481f1fc

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

ext/reflection/php_reflection.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,8 +1218,10 @@ static void _extension_string(smart_str *str, const zend_module_entry *module, c
12181218
zend_string *key;
12191219
zend_class_entry *ce;
12201220
int num_classes = 0;
1221+
zval *ce_or_alias;
12211222

1222-
ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(EG(class_table), key, ce) {
1223+
ZEND_HASH_MAP_FOREACH_STR_KEY_VAL(EG(class_table), key, ce_or_alias) {
1224+
Z_CE_FROM_ZVAL_P(ce, ce_or_alias);
12231225
_extension_class_string(ce, key, &str_classes, ZSTR_VAL(sub_indent), module, &num_classes);
12241226
} ZEND_HASH_FOREACH_END();
12251227
if (num_classes) {
@@ -5431,9 +5433,11 @@ ZEND_METHOD(ReflectionClass, getTraitAliases)
54315433
zend_string *lcname = zend_string_tolower(cur_ref->method_name);
54325434

54335435
for (j = 0; j < ce->num_traits; j++) {
5434-
zend_class_entry *trait =
5435-
zend_hash_find_ptr(CG(class_table), ce->trait_names[j].lc_name);
5436-
ZEND_ASSERT(trait && "Trait must exist");
5436+
zval *trait_entry =
5437+
zend_hash_find(CG(class_table), ce->trait_names[j].lc_name);
5438+
ZEND_ASSERT(trait_entry && "Trait must exist");
5439+
zend_class_entry *trait;
5440+
Z_CE_FROM_ZVAL_P(trait, trait_entry);
54375441
if (zend_hash_exists(&trait->function_table, lcname)) {
54385442
class_name = trait->name;
54395443
break;

0 commit comments

Comments
 (0)