From: Simon Marlow Date: Thu, 12 Mar 2009 09:38:55 +0000 (+0000) Subject: Fix sanity checking after fix to #2917 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=9c0e08c67eee8918336c1b8dce162343a312057c Fix sanity checking after fix to #2917 --- diff --git a/rts/Sanity.c b/rts/Sanity.c index 20507ca..3f4b3cf 100644 --- a/rts/Sanity.c +++ b/rts/Sanity.c @@ -633,10 +633,12 @@ checkHeapChunk(StgPtr start, StgPtr end) #endif void -checkChain(bdescr *bd) +checkLargeObjects(bdescr *bd) { while (bd != NULL) { - checkClosure((StgClosure *)bd->start); + if (!(bd->flags & BF_PINNED)) { + checkClosure((StgClosure *)bd->start); + } bd = bd->link; } } diff --git a/rts/Sanity.h b/rts/Sanity.h index 05803df..65d7053 100644 --- a/rts/Sanity.h +++ b/rts/Sanity.h @@ -20,7 +20,7 @@ /* debugging routines */ extern void checkHeap ( bdescr *bd ); extern void checkHeapChunk ( StgPtr start, StgPtr end ); -extern void checkChain ( bdescr *bd ); +extern void checkLargeObjects ( bdescr *bd ); extern void checkTSO ( StgTSO* tso ); extern void checkGlobalTSOList ( rtsBool checkTSOs ); extern void checkStaticObjects ( StgClosure* static_objects ); diff --git a/rts/sm/Storage.c b/rts/sm/Storage.c index 9dea30e..f38842b 100644 --- a/rts/sm/Storage.c +++ b/rts/sm/Storage.c @@ -1466,7 +1466,7 @@ checkSanity( void ) if (RtsFlags.GcFlags.generations == 1) { checkHeap(g0s0->blocks); - checkChain(g0s0->large_objects); + checkLargeObjects(g0s0->large_objects); } else { for (g = 0; g < RtsFlags.GcFlags.generations; g++) { @@ -1477,7 +1477,7 @@ checkSanity( void ) ASSERT(countBlocks(generations[g].steps[s].large_objects) == generations[g].steps[s].n_large_blocks); checkHeap(generations[g].steps[s].blocks); - checkChain(generations[g].steps[s].large_objects); + checkLargeObjects(generations[g].steps[s].large_objects); } }