diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-01-13 17:42:16 -0800 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-01-13 17:42:16 -0800 |
| commit | a3c3f00323f33dc7844e4a0179798648fe70a85b (patch) | |
| tree | 43e613eb3f0a3b1d5fba9224e202270acbadeb47 | |
| parent | 983065aa0d95c39ba5b834509d68ae10be8af478 (diff) | |
| parent | a80e9b5bc85d669912cca11b9e707f125ce82d5c (diff) | |
| download | mruby-a3c3f00323f33dc7844e4a0179798648fe70a85b.tar.gz mruby-a3c3f00323f33dc7844e4a0179798648fe70a85b.zip | |
Merge pull request #729 from authorNari/unclear-black-in-major-collector
Doesn't clear black of all marked objects in the major collector.
| -rw-r--r-- | src/gc.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -780,7 +780,7 @@ incremental_sweep_phase(mrb_state *mrb, size_t limit) } } else { - if (!is_minor_gc(mrb)) + if (!is_generational(mrb)) paint_partial_white(mrb, &p->as.basic); /* next gc target */ dead_slot = 0; } @@ -863,11 +863,10 @@ clear_all_old(mrb_state *mrb) if (is_major_gc(mrb)) { advance_phase(mrb, GC_STATE_NONE); } - else { - mrb->is_generational_gc_mode = FALSE; - prepare_incremental_sweep(mrb); - advance_phase(mrb, GC_STATE_NONE); - } + + mrb->is_generational_gc_mode = FALSE; + prepare_incremental_sweep(mrb); + advance_phase(mrb, GC_STATE_NONE); mrb->variable_gray_list = mrb->gray_list = NULL; mrb->is_generational_gc_mode = origin_mode; } |
