X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=rts%2FLdvProfile.c;h=b5c0e63f01faeb6fd039422bf85118ac4f0ec0cd;hb=6cf8982ac30be6836a0cdd8be5a6ac1a1a144213;hp=6a807cf37747a0076e151dba29fa356adf3144f0;hpb=d600bf7a6afdbfc4a22f9379406a9c6f789a4c2d;p=ghc-hetmet.git diff --git a/rts/LdvProfile.c b/rts/LdvProfile.c index 6a807cf..b5c0e63 100644 --- a/rts/LdvProfile.c +++ b/rts/LdvProfile.c @@ -9,10 +9,11 @@ #ifdef PROFILING +#include "PosixSource.h" #include "Rts.h" -#include "LdvProfile.h" -#include "RtsFlags.h" + #include "Profiling.h" +#include "LdvProfile.h" #include "Stats.h" #include "RtsUtils.h" #include "Schedule.h" @@ -179,11 +180,6 @@ processHeapClosureForDead( StgClosure *c ) case RET_SMALL: case RET_BIG: // others - case BLOCKED_FETCH: - case FETCH_ME: - case FETCH_ME_BQ: - case RBH: - case REMOTE_REF: case INVALID_OBJECT: default: barf("Invalid object in processHeapClosureForDead(): %d", info->type); @@ -266,7 +262,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; } }