From 522e46fd040f48bf9414254f2e2a1520aaa257ad Mon Sep 17 00:00:00 2001 From: simonmar Date: Wed, 13 Jul 2005 12:27:55 +0000 Subject: [PATCH] [project @ 2005-07-13 12:27:55 by simonmar] Handle TREC_CHUNK in update_fwd_large --- ghc/rts/GCCompact.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ghc/rts/GCCompact.c b/ghc/rts/GCCompact.c index f4e66b6..549a27c 100644 --- a/ghc/rts/GCCompact.c +++ b/ghc/rts/GCCompact.c @@ -504,6 +504,20 @@ update_fwd_large( bdescr *bd ) thread_PAP((StgPAP *)p); continue; + case TREC_CHUNK: + { + StgWord i; + StgTRecChunk *tc = (StgTRecChunk *)p; + TRecEntry *e = &(tc -> entries[0]); + thread((StgPtr)&tc->prev_chunk); + for (i = 0; i < tc -> next_entry_idx; i ++, e++ ) { + thread((StgPtr)&e->tvar); + thread((StgPtr)&e->expected_value); + thread((StgPtr)&e->new_value); + } + continue; + } + default: barf("update_fwd_large: unknown/strange object %d", (int)(info->type)); } @@ -580,7 +594,6 @@ thread_obj (StgInfoTable *info, StgPtr p) case FUN: case CONSTR: - case FOREIGN: case STABLE_NAME: case IND_PERM: case MUT_VAR: -- 1.7.10.4