incremental GC: fix accumulation of page-repair work

Too much work was being saved for the final step of a
major GC.
This commit is contained in:
Matthew Flatt 2015-11-30 15:11:50 -07:00
parent e9c722cf22
commit d306ecdf3a

View File

@ -5408,6 +5408,8 @@ static void incremental_repair_pages(NewGC *gc, int fuel)
while (fuel && gc->inc_repair_next) {
page = gc->inc_repair_next;
gc->inc_repair_next = page->inc_modified_next;
if (!gc->inc_repair_next)
gc->inc_repair_next = gc->inc_modified_next;
GC_ASSERT(page->generation >= AGE_GEN_1);
if (page->generation == AGE_VACATED) {
/* skip */