Skip to content

Commit bdb2595

Browse files
committed
Move object_id to flags for ObjectSpace dumps
Moving object_id dumping from ObjectSpace to the GC flags allows ObjectSpace to not assume the FL_SEEN_OBJ_ID flag and instead move it to the responsibility of the GC.
1 parent 3d4c7c3 commit bdb2595

File tree

2 files changed

+3
-6
lines changed

2 files changed

+3
-6
lines changed

ext/objspace/objspace_dump.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -636,11 +636,6 @@ dump_object(VALUE obj, struct dump_config *dc)
636636
dump_append_sizet(dc, memsize);
637637
}
638638

639-
if (FL_TEST(obj, FL_SEEN_OBJ_ID)) {
640-
dump_append(dc, ", \"object_id\":");
641-
dump_append_lu(dc, RB_NUM2ULONG(rb_obj_id(obj)));
642-
}
643-
644639
struct rb_gc_object_metadata_entry *gc_metadata = rb_gc_object_metadata(obj);
645640
for (int i = 0; gc_metadata[i].name != 0; i++) {
646641
if (i == 0) {

gc/default/default.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6197,7 +6197,7 @@ rb_gc_impl_object_metadata(void *objspace_ptr, VALUE obj)
61976197
{
61986198
rb_objspace_t *objspace = objspace_ptr;
61996199
size_t n = 0;
6200-
static ID ID_wb_protected, ID_age, ID_old, ID_uncollectible, ID_marking, ID_marked, ID_pinned;
6200+
static ID ID_wb_protected, ID_age, ID_old, ID_uncollectible, ID_marking, ID_marked, ID_pinned, ID_object_id;
62016201

62026202
if (!ID_marked) {
62036203
#define I(s) ID_##s = rb_intern(#s);
@@ -6208,6 +6208,7 @@ rb_gc_impl_object_metadata(void *objspace_ptr, VALUE obj)
62086208
I(marking);
62096209
I(marked);
62106210
I(pinned);
6211+
I(object_id);
62116212
#undef I
62126213
}
62136214

@@ -6225,6 +6226,7 @@ rb_gc_impl_object_metadata(void *objspace_ptr, VALUE obj)
62256226
if (RVALUE_MARKING(objspace, obj)) SET_ENTRY(marking, Qtrue);
62266227
if (RVALUE_MARKED(objspace, obj)) SET_ENTRY(marked, Qtrue);
62276228
if (RVALUE_PINNED(objspace, obj)) SET_ENTRY(pinned, Qtrue);
6229+
if (FL_TEST(obj, FL_SEEN_OBJ_ID)) SET_ENTRY(object_id, rb_obj_id(obj));
62286230

62296231
object_metadata_entries[n].name = 0;
62306232
object_metadata_entries[n].val = 0;

0 commit comments

Comments
 (0)