diff options
| -rw-r--r-- | rts/Sanity.c | 6 | ||||
| -rw-r--r-- | rts/Sanity.h | 2 | ||||
| -rw-r--r-- | rts/sm/Storage.c | 4 |
3 files changed, 7 insertions, 5 deletions
diff --git a/rts/Sanity.c b/rts/Sanity.c index 20507ca816..3f4b3cf7b0 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 05803df2ce..65d70539b0 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 9dea30e193..f38842b59e 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); } } |
