[svn:parrot] r49563 - in branches/generational_gc: include/parrot src/gc
bacek at svn.parrot.org
bacek at svn.parrot.org
Mon Oct 18 10:42:59 UTC 2010
Author: bacek
Date: Mon Oct 18 10:42:58 2010
New Revision: 49563
URL: https://trac.parrot.org/parrot/changeset/49563
Log:
Separate wb_triggered flag from generic generation_2 flag to simplify
debugging.
Modified:
branches/generational_gc/include/parrot/pobj.h
branches/generational_gc/src/gc/gc_ms2.c
Modified: branches/generational_gc/include/parrot/pobj.h
==============================================================================
--- branches/generational_gc/include/parrot/pobj.h Mon Oct 18 01:42:07 2010 (r49562)
+++ branches/generational_gc/include/parrot/pobj.h Mon Oct 18 10:42:58 2010 (r49563)
@@ -191,7 +191,10 @@
/* True if the PMC is a class */
PObj_is_class_FLAG = POBJ_FLAG(29),
/* True if the PMC is a parrot object */
- PObj_is_object_FLAG = POBJ_FLAG(30)
+ PObj_is_object_FLAG = POBJ_FLAG(30),
+
+ /* Set when write barrier triggered */
+ PObj_GC_wb_triggered_FLAG = POBJ_FLAG(31)
} PObj_flags;
#undef POBJ_FLAG
Modified: branches/generational_gc/src/gc/gc_ms2.c
==============================================================================
--- branches/generational_gc/src/gc/gc_ms2.c Mon Oct 18 01:42:07 2010 (r49562)
+++ branches/generational_gc/src/gc/gc_ms2.c Mon Oct 18 10:42:58 2010 (r49563)
@@ -659,7 +659,7 @@
PMC *pmc = LLH2Obj_typed(tmp, PMC);
/* write_barrier can set this flag */
- pmc->flags &= ~PObj_GC_generation_2_FLAG;
+ pmc->flags &= ~PObj_GC_wb_triggered_FLAG;
/* if object is a PMC and contains buffers or PMCs, then attach the PMC
* to the chained mark list. */
@@ -1442,7 +1442,8 @@
/* Paint live objects white */
PObj_live_CLEAR(obj);
- obj->flags &= ~PObj_GC_generation_2_FLAG;
+ obj->flags &= ~PObj_GC_generation_2_FLAG
+ | ~PObj_GC_wb_triggered_FLAG;
}
else if (!PObj_constant_TEST(obj)) {
PObj_on_free_list_SET(obj);
@@ -1743,7 +1744,7 @@
size_t gen = PObj_to_generation(pmc);
/* If we are already marked this one - skip it */
- if (pmc->flags & PObj_GC_generation_2_FLAG)
+ if (pmc->flags & PObj_GC_wb_triggered_FLAG)
return;
if (!gen)
@@ -1751,7 +1752,7 @@
LIST_REMOVE(self->objects[PObj_to_generation(pmc)], item);
LIST_APPEND(self->root_objects, item);
- pmc->flags |= PObj_GC_generation_2_FLAG;
+ pmc->flags |= PObj_GC_wb_triggered_FLAG;
PObj_live_SET(pmc);
}
More information about the parrot-commits
mailing list