[svn:parrot] r49637 - branches/generational_gc/src/gc

bacek at svn.parrot.org bacek at svn.parrot.org
Sat Oct 23 05:07:33 UTC 2010


Author: bacek
Date: Sat Oct 23 05:07:33 2010
New Revision: 49637
URL: https://trac.parrot.org/parrot/changeset/49637

Log:
Repaint old generations white after marking young generations.

Modified:
   branches/generational_gc/src/gc/gc_ms2.c

Modified: branches/generational_gc/src/gc/gc_ms2.c
==============================================================================
--- branches/generational_gc/src/gc/gc_ms2.c	Sat Oct 23 05:07:09 2010	(r49636)
+++ branches/generational_gc/src/gc/gc_ms2.c	Sat Oct 23 05:07:33 2010	(r49637)
@@ -799,11 +799,32 @@
         gc_ms2_sweep_pool(interp, self->pmc_allocator, self->objects[1], gc_ms2_sweep_pmc_cb);
         gc_ms2_sweep_pool(interp, self->string_allocator, self->strings[1], gc_ms2_sweep_string_cb);
     }
+    else {
+        tmp = 0 && old_object_tails[1]
+             ? old_object_tails[1]
+             : self->objects[1]->first;
+        while (tmp) {
+            PMC *pmc = LLH2Obj_typed(tmp, PMC);
+            PObj_live_CLEAR(pmc);
+            tmp = tmp->next;
+        }
+    }
 
     if (gen == 2) {
         gc_ms2_sweep_pool(interp, self->pmc_allocator, self->objects[2], gc_ms2_sweep_pmc_cb);
         gc_ms2_sweep_pool(interp, self->string_allocator, self->strings[2], gc_ms2_sweep_string_cb);
     }
+    else {
+        tmp = 0 && old_object_tails[2]
+              ? old_object_tails[2]
+              : self->objects[2]->first;
+        while (tmp) {
+            PMC *pmc = LLH2Obj_typed(tmp, PMC);
+            PObj_live_CLEAR(pmc);
+            tmp = tmp->next;
+        }
+    }
+
 
 
     /* Update some stats */


More information about the parrot-commits mailing list