diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-05-25 21:56:43 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-05-25 21:58:15 +0900 |
| commit | f75f506181d632c1abcd78e6c1330ac78ff4955b (patch) | |
| tree | e824cef5687a2b00e96fe6c5818d0d4702587cf7 /src/gc.c | |
| parent | ac442bc1df2ec26729077ed8d57342cb5c494a21 (diff) | |
| download | mruby-f75f506181d632c1abcd78e6c1330ac78ff4955b.tar.gz mruby-f75f506181d632c1abcd78e6c1330ac78ff4955b.zip | |
Revert 01f7825; fix #3650
Redundant `mark_context() is far better than crashes.
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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); } } |
