small bugfix in traverseBlackHoleQueue()
[ghc-hetmet.git] / 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;