diff --git a/ghc/rts/ProfHeap.c b/ghc/rts/ProfHeap.c index 82857f965de7abaab4d9fada889b3dd924d9c15a..d69ac4b74b8e95a0655db83836eb308001fc3633 100644 --- a/ghc/rts/ProfHeap.c +++ b/ghc/rts/ProfHeap.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: ProfHeap.c,v 1.16 2000/07/09 16:17:10 panne Exp $ + * $Id: ProfHeap.c,v 1.17 2000/11/07 18:00:26 simonmar Exp $ * * (c) The GHC Team, 1998-2000 * @@ -496,9 +496,10 @@ heapCensus(void) break; case CONSTR: - if (((StgClosure *)p)->header.info == &DEAD_WEAK_info) { - size = sizeofW(StgWeak); - break; + if (((StgClosure *)p)->header.info == &DEAD_WEAK_info + && !(LOOKS_LIKE_GHC_INFO(*(p + sizeW_fromITBL(info))))) { + size = sizeofW(StgWeak); + break; } /* else, fall through... */