Skip to content

Commit f75f506

Browse files
committed
Revert 01f7825; fix #3650
Redundant `mark_context() is far better than crashes.
1 parent ac442bc commit f75f506

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/gc.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -595,8 +595,8 @@ mark_context(mrb_state *mrb, struct mrb_context *c)
595595
}
596596
/* mark fibers */
597597
mrb_gc_mark(mrb, (struct RBasic*)c->fib);
598-
if (c->prev && c->prev->fib) {
599-
mrb_gc_mark(mrb, (struct RBasic*)c->prev->fib);
598+
if (c->prev) {
599+
mark_context(mrb, c->prev);
600600
}
601601
}
602602

@@ -878,9 +878,9 @@ root_scan_phase(mrb_state *mrb, mrb_gc *gc)
878878
mrb_gc_mark(mrb, (struct RBasic*)mrb->arena_err);
879879
#endif
880880

881-
mark_context(mrb, mrb->root_c);
881+
mark_context(mrb, mrb->c);
882882
if (mrb->root_c != mrb->c) {
883-
mark_context(mrb, mrb->c);
883+
mark_context(mrb, mrb->root_c);
884884
}
885885
}
886886

0 commit comments

Comments
 (0)