diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-06-01 19:47:33 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-06-01 19:47:33 +0900 |
| commit | 51e0e690c27023e1f12603dc747aed3510638aaa (patch) | |
| tree | 68ac2ed91827aed09530e6955cd32f9d3bf3568b /src/gc.c | |
| parent | 87cc0344cde0e3ccafa162bdbcf8a6ffac61e6ba (diff) | |
| download | mruby-51e0e690c27023e1f12603dc747aed3510638aaa.tar.gz mruby-51e0e690c27023e1f12603dc747aed3510638aaa.zip | |
Avoid invoking GC when disabled or iterating; fix #3681
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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); |
