summaryrefslogtreecommitdiff
path: root/rts/LdvProfile.c
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-03-16 16:05:34 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-03-16 16:05:34 +0000
commit8b85ebc3da33a8c870425d951a307360627a1d12 (patch)
tree53ffca8c00fa1b901e803abb61bd31d7ab25ee38 /rts/LdvProfile.c
parent5ed9db738f05bcc8a855e2ddd5f3ad243a22e0a8 (diff)
downloadhaskell-8b85ebc3da33a8c870425d951a307360627a1d12.tar.gz
Don't call processHeapClosureForDead on pinned blocks
Fixes heapprof001(prof_hp) after fix for #2917
Diffstat (limited to 'rts/LdvProfile.c')
-rw-r--r--rts/LdvProfile.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/rts/LdvProfile.c b/rts/LdvProfile.c
index 6a807cf377..eab3ec3e4b 100644
--- a/rts/LdvProfile.c
+++ b/rts/LdvProfile.c
@@ -266,7 +266,9 @@ processChainForDead( bdescr *bd )
{
// Any object still in the chain is dead!
while (bd != NULL) {
- processHeapClosureForDead((StgClosure *)bd->start);
+ if (!(bd->flags & BF_PINNED)) {
+ processHeapClosureForDead((StgClosure *)bd->start);
+ }
bd = bd->link;
}
}