Skip to content

Commit

Permalink
Fix freelist push bug.
Browse files Browse the repository at this point in the history
  • Loading branch information
Evan Weaver committed Jul 13, 2011
1 parent 1dfba15 commit 2271939
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions gc.c
Expand Up @@ -1771,25 +1771,25 @@ static int obj_free _((VALUE));
static void add_to_correct_freelist(RVALUE *p)
{
int longlived = OBJ_LONGLIVED(p);
heaps_space_t heaps_space;
heaps_space_t *heaps_space;

// Has explicit longlife flag
if(longlived) {
heaps_space = longlife_heaps_space;
heaps_space = &longlife_heaps_space;
}
// Has some flags (so they weren't cleared), but not longlife
else if(p->as.free.flags != 0 && !longlived) {
heaps_space = eden_heaps_space;
heaps_space = &eden_heaps_space;
}
// If all else fails, use slower is_pointer_to_longlife_heap()
else if (is_pointer_to_longlife_heap(p)) {
heaps_space = longlife_heaps_space;
heaps_space = &longlife_heaps_space;
} else {
heaps_space = eden_heaps_space;
heaps_space = &eden_heaps_space;
}

push_freelist(&heaps_space, p);
heaps_space.total_free_slots++;
push_freelist(heaps_space, p);
heaps_space->total_free_slots++;
}

static void
Expand Down

0 comments on commit 2271939

Please sign in to comment.