From 9c0e08c67eee8918336c1b8dce162343a312057c Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Thu, 12 Mar 2009 09:38:55 +0000 Subject: [PATCH] Fix sanity checking after fix to #2917 --- rts/Sanity.c | 6 ++++-- rts/Sanity.h | 2 +- rts/sm/Storage.c | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) 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); } } -- 1.7.10.4