Skip to content

Commit 640a2f1

Browse files
committed
Ensure ObjectSpace.dump won't call cc_cme on invalidated CC
1 parent a9f6fe0 commit 640a2f1

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

ext/objspace/objspace_dump.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -451,13 +451,16 @@ dump_object(VALUE obj, struct dump_config *dc)
451451
break;
452452

453453
case imemo_callcache:
454-
mid = vm_cc_cme((const struct rb_callcache *)obj)->called_id;
455-
if (mid != 0) {
456-
dump_append(dc, ", \"called_id\":");
457-
dump_append_id(dc, mid);
458-
454+
{
459455
VALUE klass = ((const struct rb_callcache *)obj)->klass;
460-
if (klass != 0) {
456+
if (klass != Qundef) {
457+
mid = vm_cc_cme((const struct rb_callcache *)obj)->called_id;
458+
if (mid != 0) {
459+
dump_append(dc, ", \"called_id\":");
460+
dump_append_id(dc, mid);
461+
462+
}
463+
461464
dump_append(dc, ", \"receiver_class\":");
462465
dump_append_ref(dc, klass);
463466
}

0 commit comments

Comments
 (0)