[svn:parrot] r47293 - branches/gc_massacre/src/gc
bacek at svn.parrot.org
bacek at svn.parrot.org
Wed Jun 2 10:22:04 UTC 2010
Author: bacek
Date: Wed Jun 2 10:22:04 2010
New Revision: 47293
URL: https://trac.parrot.org/parrot/changeset/47293
Log:
Minor cleanup
Modified:
branches/gc_massacre/src/gc/gc_tms.c
Modified: branches/gc_massacre/src/gc/gc_tms.c
==============================================================================
--- branches/gc_massacre/src/gc/gc_tms.c Wed Jun 2 10:21:33 2010 (r47292)
+++ branches/gc_massacre/src/gc/gc_tms.c Wed Jun 2 10:22:04 2010 (r47293)
@@ -681,11 +681,8 @@
self.mark_real($_) for self.grey_objects;
*/
counter = 0;
- while (self->grey_objects->first) {
- tmp = self->grey_objects->first;
+ while (tmp = Parrot_gc_list_pop(interp, self->grey_objects)) {
PARROT_ASSERT(tmp->owner == self->grey_objects);
-
- Parrot_gc_list_remove(interp, self->grey_objects, tmp);
PARROT_ASSERT(PObj_grey_TEST(LLH2Obj_typed(tmp, PMC)));
gc_tms_real_mark_pmc(interp, self, tmp);
@@ -739,20 +736,15 @@
} while (0);
+ /* Appending freshly allocated objects back */
list = self->black_objects;
self->black_objects = self->objects;
self->objects = list;
//fprintf(stderr, "Appending %zd\n", self->black_objects->count);
-
- tmp = self->black_objects->first;
- while (tmp) {
- PMC *pmc = LLH2Obj_typed(tmp, PMC);
- List_Item_Header *next = tmp->next;
+ while (tmp = Parrot_gc_list_pop(interp, self->black_objects)) {
PARROT_ASSERT(tmp->owner == self->black_objects);
- Parrot_gc_list_remove(interp, self->black_objects, tmp);
Parrot_gc_list_append(interp, self->objects, tmp);
- tmp = next;
}
self->header_allocs_since_last_collect = 0;
@@ -782,13 +774,12 @@
ARGIN(struct List_Item_Header *li))
{
ASSERT_ARGS(gc_tms_real_mark_pmc)
+
PMC *obj = LLH2Obj_typed(li, PMC);
- //Parrot_gc_list_remove(interp, self->grey_objects, li);
Parrot_gc_list_append(interp, self->black_objects, li);
+
PObj_grey_CLEAR(obj);
/* self.SUPER.mark($obj) */
- //gc_ms_mark_pmc_header(interp, LLH2Obj_typed(li, PMC));
-
/* mark it live */
PObj_live_SET(obj);
More information about the parrot-commits
mailing list