#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;
}
}
/* 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 );
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++) {
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);
}
}