summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2011-02-02 13:22:57 +0000
committerSimon Marlow <marlowsd@gmail.com>2011-02-02 13:22:57 +0000
commit104b00d80891ff1010905df517a9b9c465078c31 (patch)
tree020fbef0f2b4dbc95793a82e916dfa79c92711b8 /rts
parentbef3da1e26639303fccbf26c312d2833eedb486e (diff)
downloadhaskell-104b00d80891ff1010905df517a9b9c465078c31.tar.gz
Fix the profiling build
Diffstat (limited to 'rts')
-rw-r--r--rts/RetainerProfile.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c
index d125c9c928..4bfda6fef8 100644
--- a/rts/RetainerProfile.c
+++ b/rts/RetainerProfile.c
@@ -1773,7 +1773,7 @@ computeRetainerSet( void )
{
StgWeak *weak;
RetainerSet *rtl;
- nat g;
+ nat g, n;
StgPtr ml;
bdescr *bd;
#ifdef DEBUG_RETAINER
@@ -1804,7 +1804,8 @@ computeRetainerSet( void )
// Traversing through mut_list is necessary
// because we can find MUT_VAR objects which have not been
// visited during retainer profiling.
- for (bd = generations[g].mut_list; bd != NULL; bd = bd->link) {
+ for (n = 0; n < n_capabilities; n++) {
+ for (bd = capabilities[n].mut_lists[g]; bd != NULL; bd = bd->link) {
for (ml = bd->start; ml < bd->free; ml++) {
maybeInitRetainerSet((StgClosure *)*ml);
@@ -1835,7 +1836,8 @@ computeRetainerSet( void )
}
#endif
}
- }
+ }
+ }
}
}