From 41e1859b2be9f58c98f3bf929d7d5a5b97d887dc Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Fri, 29 Jun 2007 01:32:16 +0300 Subject: [PATCH] * Fized a bug in the collector that caused tconc pages to never get deallocated. Tconc pages are now allocated from generation 1. --- bin/ikarus | Bin 63636 -> 63636 bytes bin/ikarus-collect.c | 10 +++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bin/ikarus b/bin/ikarus index 167808863ea00d8747a58d80ef91abf863ab68bd..6fe31dd90cdf7747764cf0e62f0556b86c2c71ae 100755 GIT binary patch delta 9170 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 diff --git a/bin/ikarus-collect.c b/bin/ikarus-collect.c index a847f4b..2542c66 100644 --- a/bin/ikarus-collect.c +++ b/bin/ikarus-collect.c @@ -230,7 +230,13 @@ gc_tconc_push_extending(gc_t* gc, ikp tcbucket){ p->next = gc->tconc_queue; gc->tconc_queue = p; } - ikp ap = ik_mmap(pagesize); + /* Wrong MR! */ + ikp ap = + ik_mmap_typed(pagesize, + meta_mt[meta_ptrs] | next_gen_tag[0], + gc->pcb); + gc->segment_vector = gc->pcb->segment_vector; + bzero(ap, pagesize); ikp nap = ap + wordsize; gc->tconc_base = ap; gc->tconc_ap = nap; @@ -1770,6 +1776,7 @@ add_one_tconc(ikpcb* pcb, ikp tcbucket){ assert(tagof(tc) == pair_tag); ikp d = ref(tc, off_cdr); assert(tagof(d) == pair_tag); + /* Wrong MR! */ ikp new_pair = ik_alloc(pcb, pair_size) + pair_tag; ref(d, off_car) = tcbucket; ref(d, off_cdr) = new_pair; @@ -1801,6 +1808,7 @@ gc_add_tconcs(gc_t* gc){ ikp q = p + qu->size; while(p < q){ add_one_tconc(pcb, ref(p,0)); + ref(p,0) = 0; p += wordsize; } ikpages* next = qu->next;