diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-08-01 07:01:26 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-08-01 07:01:26 -0700 |
| commit | a32fdf3e5d3cd4238afd5e5627659269e31211ef (patch) | |
| tree | c7adb25081e1f54e47dcbf22967d5b66da389b79 | |
| parent | 429e69243ce7d47075c5d4e638602f7f2e24a46f (diff) | |
| parent | 107906e3cb1d7f538bdecba9b171502a682cde0f (diff) | |
| download | mruby-a32fdf3e5d3cd4238afd5e5627659269e31211ef.tar.gz mruby-a32fdf3e5d3cd4238afd5e5627659269e31211ef.zip | |
Merge pull request #1426 from Fleurer/clear-all-old
add comments for clear_all_old()
| -rw-r--r-- | src/gc.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -941,11 +941,15 @@ clear_all_old(mrb_state *mrb) incremental_gc_until(mrb, GC_STATE_NONE); } + /* Sweep the dead objects, then reset all the live objects + * (including all the old objects, of course) to white. */ mrb->is_generational_gc_mode = FALSE; prepare_incremental_sweep(mrb); incremental_gc_until(mrb, GC_STATE_NONE); - mrb->atomic_gray_list = mrb->gray_list = NULL; mrb->is_generational_gc_mode = origin_mode; + + /* The gray objects has already been painted as white */ + mrb->atomic_gray_list = mrb->gray_list = NULL; } void @@ -998,7 +1002,7 @@ mrb_full_gc(mrb_state *mrb) incremental_gc_until(mrb, GC_STATE_NONE); } - /* clean all black object as old */ + /* clear all the old objects back to young */ if (is_generational(mrb)) { clear_all_old(mrb); mrb->gc_full = TRUE; |
