Skip unnecessary `mark_context` if `mrb->c == mrb->root_c`.
MODIFY
src/gc.c
src/gc.c
@@ -1076,7 +1076,9 @@ final_marking_phase(mrb_state *mrb, mrb_gc *gc)
}
mrb_gc_mark_gv(mrb);
mark_context(mrb, mrb->c);
+ if (mrb->c != mrb->root_c) {
mark_context(mrb, mrb->root_c);
+ }
mrb_gc_mark(mrb, (struct RBasic*)mrb->exc);
gc_mark_gray_list(mrb, gc);
mrb_assert(gc->gray_list == NULL);

Skip unnecessary `mark_context` if `mrb->c == mrb->root_c`.