diff options
Diffstat (limited to 'rts/RetainerProfile.c')
-rw-r--r-- | rts/RetainerProfile.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c index 9e9f2462ed..3fa025d19c 100644 --- a/rts/RetainerProfile.c +++ b/rts/RetainerProfile.c @@ -244,6 +244,9 @@ initializeTraverseStack( traverseState *ts ) ts->firstStack->link = NULL; ts->firstStack->u.back = NULL; + ts->stackSize = 0; + ts->maxStackSize = 0; + newStackBlock(ts, ts->firstStack); } @@ -260,6 +263,12 @@ closeTraverseStack( traverseState *ts ) ts->firstStack = NULL; } +int +getTraverseStackMaxSize(traverseState *ts) +{ + return ts->maxStackSize; +} + /* ----------------------------------------------------------------------------- * Returns true if the whole stack is empty. * -------------------------------------------------------------------------- */ @@ -1798,8 +1807,6 @@ retainerProfile(void) // Now we flips flip. flip = flip ^ 1; - g_retainerTraverseState.stackSize = 0; - g_retainerTraverseState.maxStackSize = 0; numObjectVisited = 0; timesAnyObjectVisited = 0; @@ -1819,7 +1826,7 @@ retainerProfile(void) stat_endRP( retainerGeneration - 1, // retainerGeneration has just been incremented! - g_retainerTraverseState.maxStackSize, + getTraverseStackMaxSize(&g_retainerTraverseState), (double)timesAnyObjectVisited / numObjectVisited); } |