Fix bug: eval_thunk_selector was calling the unlocked evacuate()
authorSimon Marlow <simonmar@microsoft.com>
Wed, 9 Jan 2008 14:49:37 +0000 (14:49 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Wed, 9 Jan 2008 14:49:37 +0000 (14:49 +0000)
rts/sm/Evac.c-inc
rts/sm/Scav.c-inc

index 7e10452..4fe9d5d 100644 (file)
@@ -39,6 +39,7 @@ copy_tag(StgClosure **p, StgClosure *src, nat size, step *stp, StgWord tag)
        return evacuate(p); // does the failed_to_evac stuff
     }
 #else
+    ASSERT(n_gc_threads == 1);
     info = (W_)src->header.info;
     src->header.info = &stg_EVACUATED_info;
 #endif
@@ -563,3 +564,8 @@ loop:
 
   barf("evacuate");
 }
+
+#undef copy
+#undef copy_tag
+#undef copyPart
+#undef evacuate
index 2206dd3..e9aeb2c 100644 (file)
@@ -20,6 +20,7 @@
 #else
 #undef scavenge_block
 #undef evacuate
+#undef recordMutableGen_GC
 #endif
 
 static void scavenge_block (bdescr *bd, StgPtr scan);