Fix a bug which sometimes caused extra major GCs to be performed
[ghc-hetmet.git] / rts / sm / Scav.c
index 9d1a0b6..34096d4 100644 (file)
@@ -69,7 +69,7 @@ scavengeTSO (StgTSO *tso)
         return;
     }
 
-    debugTrace(DEBUG_gc,"scavenging thread %d",tso->id);
+    debugTrace(DEBUG_gc,"scavenging thread %d",(int)tso->id);
 
     saved_eager = gct->eager_promotion;
     gct->eager_promotion = rtsFalse;
@@ -1372,7 +1372,7 @@ scavenge_one(StgPtr p)
         * evacuated, so we perform that check here.
         */
        StgClosure *q = ((StgInd *)p)->indirectee;
-       if (HEAP_ALLOCED(q) && Bdescr((StgPtr)q)->flags & BF_EVACUATED) {
+       if (HEAP_ALLOCED_GC(q) && Bdescr((StgPtr)q)->flags & BF_EVACUATED) {
            break;
        }
        evacuate(&((StgInd *)p)->indirectee);