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

bacek at svn.parrot.org bacek at svn.parrot.org
Fri Oct 8 11:37:13 UTC 2010


Author: bacek
Date: Fri Oct  8 11:37:13 2010
New Revision: 49482
URL: https://trac.parrot.org/parrot/changeset/49482

Log:
Fix cleanup flags

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	Fri Oct  8 11:36:57 2010	(r49481)
+++ branches/generational_gc/src/gc/gc_ms2.c	Fri Oct  8 11:37:13 2010	(r49482)
@@ -1348,7 +1348,7 @@
     size_t             gen  = PObj_to_generation(pmc);
 
     /* Objects from older generation will stay */
-    if (gen >= self->current_generation)
+    if (gen > self->current_generation)
         return;
 
     /* "Constant"... */
@@ -1357,7 +1357,9 @@
 
     LIST_REMOVE(self->objects[gen], item);
     LIST_APPEND(self->objects[self->current_generation], item);
-    pmc->flags &= ~generation_to_flags(gen);
+    pmc->flags &= ~(PObj_GC_generation_0_FLAG
+        | PObj_GC_generation_1_FLAG
+        | PObj_GC_generation_2_FLAG);
     pmc->flags |= generation_to_flags(self->current_generation);
 }
 
@@ -1380,7 +1382,9 @@
 
     LIST_REMOVE(self->strings[gen], item);
     LIST_APPEND(self->strings[self->current_generation], item);
-    s->flags &= ~generation_to_flags(gen);
+    s->flags &= ~(PObj_GC_generation_0_FLAG
+        | PObj_GC_generation_1_FLAG
+        | PObj_GC_generation_2_FLAG);
     s->flags |= generation_to_flags(self->current_generation);
 }
 /*


More information about the parrot-commits mailing list