[project @ 2005-04-05 09:30:11 by simonmar]
[ghc-hetmet.git] / ghc / rts / GC.c
index 75f11a2..aacef6b 100644 (file)
@@ -3088,7 +3088,7 @@ linear_scan:
                           p, info_type((StgClosure *)p)));
            break;
        }
-#endif // PAR
+#endif /* PAR */
 
        case TVAR_WAIT_QUEUE:
          {
@@ -3849,14 +3849,14 @@ revertCAFs( void )
 {
     StgIndStatic *c;
 
-    for (c = (StgIndStatic *)caf_list; c != NULL; 
+    for (c = (StgIndStatic *)revertible_caf_list; c != NULL; 
         c = (StgIndStatic *)c->static_link) 
     {
        SET_INFO(c, c->saved_info);
        c->saved_info = NULL;
        // could, but not necessary: c->static_link = NULL; 
     }
-    caf_list = NULL;
+    revertible_caf_list = NULL;
 }
 
 void
@@ -3869,6 +3869,11 @@ markCAFs( evac_fn evac )
     {
        evac(&c->indirectee);
     }
+    for (c = (StgIndStatic *)revertible_caf_list; c != NULL; 
+        c = (StgIndStatic *)c->static_link) 
+    {
+       evac(&c->indirectee);
+    }
 }
 
 /* -----------------------------------------------------------------------------
@@ -4121,11 +4126,6 @@ threadSqueezeStack(StgTSO *tso)
                    // Todo: maybe use SET_HDR() and remove LDV_RECORD_CREATE()?
                    SET_INFO(bh,&stg_BLACKHOLE_info);
 
-                   // Set the update frame to stg_bh_upd_info, which
-                   // checks for blackholes (the normal update frame
-                   // doesn't check, for efficiency).
-                   ((StgClosure *)frame)->header.info = &stg_bh_upd_frame_info;
-
                    // We pretend that bh has just been created.
                    LDV_RECORD_CREATE(bh);
                }
@@ -4255,4 +4255,4 @@ maybeLarge(StgClosure *closure)
 }
 
   
-#endif // DEBUG
+#endif /* DEBUG */