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

bacek at svn.parrot.org bacek at svn.parrot.org
Sun Oct 24 21:33:12 UTC 2010


Author: bacek
Date: Sun Oct 24 21:33:11 2010
New Revision: 49654
URL: https://trac.parrot.org/parrot/changeset/49654

Log:
Don't process non-black objects during bringing to same generation.

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	Sun Oct 24 21:08:31 2010	(r49653)
+++ branches/generational_gc/src/gc/gc_ms2.c	Sun Oct 24 21:33:11 2010	(r49654)
@@ -916,13 +916,15 @@
         while (tmp) {
             PMC *pmc = LLH2Obj_typed(tmp, PMC);
 
-            pmc->flags |= PObj_GC_generation_2_FLAG;
+            if (PObj_live_TEST(pmc)) {
+                pmc->flags |= PObj_GC_generation_2_FLAG;
 
-            if (PObj_custom_mark_TEST(pmc))
-                VTABLE_mark(interp, pmc);
+                if (PObj_custom_mark_TEST(pmc))
+                    VTABLE_mark(interp, pmc);
 
-            if (PMC_metadata(pmc))
-                Parrot_gc_mark_PMC_alive(interp, PMC_metadata(pmc));
+                if (PMC_metadata(pmc))
+                    Parrot_gc_mark_PMC_alive(interp, PMC_metadata(pmc));
+            }
 
             tmp = tmp->next;
         }


More information about the parrot-commits mailing list