Skip to content

Commit 5dd1464

Browse files
committed
properly persist classes in opcache
1 parent b6cf5d3 commit 5dd1464

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

ext/opcache/zend_persist.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,6 +1121,18 @@ zend_class_entry *zend_persist_class_entry(zend_class_entry *orig_ce)
11211121
return ce;
11221122
}
11231123

1124+
void zend_update_required_scope(zend_class_entry *ce)
1125+
{
1126+
if (ce->required_scope) {
1127+
zend_class_entry *required_scope = ce->required_scope;
1128+
1129+
zend_class_entry *r = zend_shared_alloc_get_xlat_entry(required_scope);
1130+
if (r) {
1131+
ce->required_scope = r;
1132+
}
1133+
}
1134+
}
1135+
11241136
void zend_update_parent_ce(zend_class_entry *ce)
11251137
{
11261138
if (ce->ce_flags & ZEND_ACC_LINKED) {
@@ -1294,6 +1306,7 @@ static void zend_accel_persist_class_table(HashTable *class_table)
12941306
if (EXPECTED(Z_TYPE(p->val) != IS_ALIAS_PTR)) {
12951307
ce = Z_PTR(p->val);
12961308
zend_update_parent_ce(ce);
1309+
zend_update_required_scope(ce);
12971310
}
12981311
} ZEND_HASH_FOREACH_END();
12991312
#ifdef HAVE_JIT

0 commit comments

Comments
 (0)