for (i = 0; i < info->layout.payload.ptrs; i++) {
ASSERT(LOOKS_LIKE_CLOSURE_PTR(((StgThunk *)p)->payload[i]));
}
for (i = 0; i < info->layout.payload.ptrs; i++) {
ASSERT(LOOKS_LIKE_CLOSURE_PTR(((StgThunk *)p)->payload[i]));
}
// heap sanity checking doesn't work with SMP, because we can't
// zero the slop (see Updates.h).
return;
// heap sanity checking doesn't work with SMP, because we can't
// zero the slop (see Updates.h).
return;
while (p < bd->free) {
nat size = checkClosure((StgClosure *)p);
/* This is the smallest size of closure that can live in the heap */
while (p < bd->free) {
nat size = checkClosure((StgClosure *)p);
/* This is the smallest size of closure that can live in the heap */
size = sizeofW(StgFetchMe);
} else if (get_itbl((StgClosure*)p)->type == IND) {
*(p+2) = 0x0000ee11; /* mark slop in IND as garbage */
size = sizeofW(StgFetchMe);
} else if (get_itbl((StgClosure*)p)->type == IND) {
*(p+2) = 0x0000ee11; /* mark slop in IND as garbage */
} else {
size = checkClosure((StgClosure *)p);
/* This is the smallest size of closure that can live in the heap. */
} else {
size = checkClosure((StgClosure *)p);
/* This is the smallest size of closure that can live in the heap. */
ASSERT(LOOKS_LIKE_INFO_PTR((void*)*p));
size = checkClosure((StgClosure *)p);
/* This is the smallest size of closure that can live in the heap. */
ASSERT(LOOKS_LIKE_INFO_PTR((void*)*p));
size = checkClosure((StgClosure *)p);
/* This is the smallest size of closure that can live in the heap. */