small bugfix in traverseBlackHoleQueue()
authorSimon Marlow <marlowsd@gmail.com>
Tue, 9 Sep 2008 13:33:07 +0000 (13:33 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Tue, 9 Sep 2008 13:33:07 +0000 (13:33 +0000)
rts/sm/MarkWeak.c

index 96b4f67..3d80357 100644 (file)
@@ -341,7 +341,11 @@ traverseBlackholeQueue (void)
                 }
             }
             evacuate((StgClosure **)&t);
-            if (prev) prev->_link = t;
+            if (prev) {
+                prev->_link = t;
+            } else {
+                blackhole_queue = t;
+            }
                  // no write barrier when on the blackhole queue,
                  // because we traverse the whole queue on every GC.
             flag = rtsTrue;