8000
We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e9fd44d commit db2cfebCopy full SHA for db2cfeb
shape.c
@@ -324,7 +324,14 @@ shape_tree_mark(void *data)
324
rb_shape_t *end = RSHAPE(GET_SHAPE_TREE()->next_shape_id);
325
while (cursor < end) {
326
if (cursor->edges && !SINGLE_CHILD_P(cursor->edges)) {
327
- rb_gc_mark_movable(cursor->edges);
+ // FIXME: GC compaction may call `rb_shape_traverse_from_new_root`
328
+ // to migrate objects from one object slot to another.
329
+ // Because of this if we don't pin `cursor->edges` it might be turned
330
+ // into a T_MOVED during GC.
331
+ // We'd need to eliminate `SHAPE_T_OBJECT` so that GC never need to l 57A4 ookup
332
+ // shapes this way.
333
+ // rb_gc_mark_movable(cursor->edges);
334
+ rb_gc_mark(cursor->edges);
335
}
336
cursor++;
337
0 commit comments