summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gröber <dxld@darkboxed.org>2019-07-16 15:59:34 +0200
committerDaniel Gröber <dxld@darkboxed.org>2019-09-22 15:18:10 +0200
commit39f2878c587927c5bb69f7ab26b5d09fb3cf2cc4 (patch)
tree2525dad114576cd9503ac75d3b7aa5be57f15be7
parentfd213d177cc9f3818babccf8df623e23dc10799e (diff)
downloadhaskell-39f2878c587927c5bb69f7ab26b5d09fb3cf2cc4.tar.gz
rts: retainer: Move actual 'flip' bit flip to generic traversal code
-rw-r--r--rts/RetainerProfile.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c
index 32ea5493a7..7e169260d0 100644
--- a/rts/RetainerProfile.c
+++ b/rts/RetainerProfile.c
@@ -1450,6 +1450,9 @@ traverseWorkStack(traverseState *ts, visitClosure_cb visit_cb)
stackData data, child_data;
StgWord typeOfc;
+ // Now we flip the flip bit.
+ flip = flip ^ 1;
+
// c = Current closure (possibly tagged)
// cp = Current closure's Parent (NOT tagged)
// data = current closures' associated data (NOT tagged)
@@ -1696,6 +1699,8 @@ computeRetainerSet( traverseState *ts )
// Remember old stable name addresses.
rememberOldStableNameAddresses ();
+
+ // TODO: Move this code to traverseWorkStack
// The following code resets the rs field of each unvisited mutable
// object.
for (g = 0; g < RtsFlags.GcFlags.generations; g++) {
@@ -1796,9 +1801,6 @@ retainerProfile(void)
{
stat_startRP();
- // Now we flips flip.
- flip = flip ^ 1;
-
numObjectVisited = 0;
timesAnyObjectVisited = 0;