[project @ 2004-09-07 09:35:02 by simonmar]
authorsimonmar <unknown>
Tue, 7 Sep 2004 09:35:03 +0000 (09:35 +0000)
committersimonmar <unknown>
Tue, 7 Sep 2004 09:35:03 +0000 (09:35 +0000)
Fix bug in finalizeWeak# (should fix memo002 and maybe one or two
other tests).

ghc/includes/mkDerivedConstants.c
ghc/rts/PrimOps.cmm

index 1baacdb..f5d6213 100644 (file)
@@ -308,6 +308,9 @@ main(int argc, char *argv[])
     closure_field(StgWeak,value);
     closure_field(StgWeak,finalizer);
 
+    closure_size(StgDeadWeak);
+    closure_field(StgDeadWeak,link);
+
     closure_size(StgMVar);
     closure_field(StgMVar,head);
     closure_field(StgMVar,tail);
index d4a54c6..c9556f4 100644 (file)
@@ -316,6 +316,7 @@ finalizzeWeakzh_fast
   LDV_RECORD_CREATE(w);
 
   f = StgWeak_finalizer(w);
+  StgDeadWeak_link(w) = StgWeak_link(w);
 
   /* return the finalizer */
   if (f == stg_NO_FINALIZER_closure) {