From f75f506181d632c1abcd78e6c1330ac78ff4955b Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 25 May 2017 21:56:43 +0900 Subject: Revert 01f7825; fix #3650 Redundant `mark_context() is far better than crashes. --- src/gc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gc.c b/src/gc.c index a3eee65e7..c326e38f9 100644 --- a/src/gc.c +++ b/src/gc.c @@ -595,8 +595,8 @@ mark_context(mrb_state *mrb, struct mrb_context *c) } /* mark fibers */ mrb_gc_mark(mrb, (struct RBasic*)c->fib); - if (c->prev && c->prev->fib) { - mrb_gc_mark(mrb, (struct RBasic*)c->prev->fib); + if (c->prev) { + mark_context(mrb, c->prev); } } @@ -878,9 +878,9 @@ root_scan_phase(mrb_state *mrb, mrb_gc *gc) mrb_gc_mark(mrb, (struct RBasic*)mrb->arena_err); #endif - mark_context(mrb, mrb->root_c); + mark_context(mrb, mrb->c); if (mrb->root_c != mrb->c) { - mark_context(mrb, mrb->c); + mark_context(mrb, mrb->root_c); } } -- cgit v1.2.3