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

bacek at svn.parrot.org bacek at svn.parrot.org
Mon Oct 18 11:57:02 UTC 2010


Author: bacek
Date: Mon Oct 18 11:57:02 2010
New Revision: 49567
URL: https://trac.parrot.org/parrot/changeset/49567

Log:
Use GC_gen_2 flag during validation.

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	Mon Oct 18 11:32:26 2010	(r49566)
+++ branches/generational_gc/src/gc/gc_ms2.c	Mon Oct 18 11:57:02 2010	(r49567)
@@ -870,11 +870,20 @@
         /* It can be our first move to this generation */
         List_Item_Header *tmp = self->objects[i]->first;
 
+        while (tmp) {
+            PMC *pmc = LLH2Obj_typed(tmp, PMC);
+            pmc->flags &= ~PObj_GC_generation_2_FLAG;
+            tmp = tmp->next;
+        }
+
         /* We are "marking" this generation */
         self->current_generation = i;
 
         while (tmp) {
             PMC *pmc = LLH2Obj_typed(tmp, PMC);
+
+            pmc->flags |= PObj_GC_generation_2_FLAG;
+
             if (PObj_custom_mark_TEST(pmc))
                 VTABLE_mark(interp, pmc);
 
@@ -900,6 +909,9 @@
 
     PARROT_ASSERT(pobj2gen(pmc) == self->current_generation
                   || !"Got object from wrong generation");
+
+    pmc->flags |= PObj_GC_generation_2_FLAG;
+
     if (PObj_custom_mark_TEST(pmc))
         VTABLE_mark(interp, pmc);
 }


More information about the parrot-commits mailing list