From: simonmar Date: Thu, 23 Mar 2000 14:30:13 +0000 (+0000) Subject: [project @ 2000-03-23 14:30:13 by simonmar] X-Git-Tag: Approximately_9120_patches~4917 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=0b0ee1f3d33b6c4d938aa8420749823e6aa5eb77;p=ghc-hetmet.git [project @ 2000-03-23 14:30:13 by simonmar] Fix GCing of SEQ_FRAMES, CATCH_FRAMES and STOP_FRAMES when the closure header size is more than one word (eg. with profiling on). Hans: you may need to check this w.r.t. PAR & GRAN. --- diff --git a/ghc/rts/GC.c b/ghc/rts/GC.c index cba1dbf..6383560 100644 --- a/ghc/rts/GC.c +++ b/ghc/rts/GC.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: GC.c,v 1.74 2000/03/17 13:30:24 simonmar Exp $ + * $Id: GC.c,v 1.75 2000/03/23 14:30:13 simonmar Exp $ * * (c) The GHC Team 1998-1999 * @@ -2813,18 +2813,6 @@ scavenge_stack(StgPtr p, StgPtr stack_end) case STOP_FRAME: case CATCH_FRAME: case SEQ_FRAME: - { - // StgPtr old_p = p; // debugging only -- HWL - /* stack frames like these are ordinary closures and therefore may - contain setup-specific fixed-header words (as in GranSim!); - therefore, these cases should not use p++ but &(p->payload) -- HWL */ - // IF_DEBUG(gran, IF_DEBUG(sanity, printObj(p))); - bitmap = info->layout.bitmap; - - p = (StgPtr)&(((StgClosure *)p)->payload); - // IF_DEBUG(sanity, belch("HWL: scavenge_stack: (STOP|CATCH|SEQ)_FRAME adjusting p from %p to %p (instead of %p)", old_p, p, old_p+1)); - goto small_bitmap; - } case RET_BCO: case RET_SMALL: case RET_VEC_SMALL: