From 51e0e690c27023e1f12603dc747aed3510638aaa Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 1 Jun 2017 19:47:33 +0900 Subject: Avoid invoking GC when disabled or iterating; fix #3681 --- src/gc.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/gc.c b/src/gc.c index 4f943b7a0..031e93994 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1436,6 +1436,10 @@ gc_step_ratio_set(mrb_state *mrb, mrb_value obj) static void change_gen_gc_mode(mrb_state *mrb, mrb_gc *gc, mrb_bool enable) { + if (gc->disabled || gc->iterating) { + gc->generational = enable; + return; + } if (is_generational(gc) && !enable) { clear_all_old(mrb, gc); mrb_assert(gc->state == MRB_GC_STATE_ROOT); -- cgit v1.2.3