From 1a65116f9317f73e2a49f714c00fb1353d155444 Mon Sep 17 00:00:00 2001 From: simonmar Date: Tue, 7 Sep 2004 09:35:03 +0000 Subject: [PATCH] [project @ 2004-09-07 09:35:02 by simonmar] Fix bug in finalizeWeak# (should fix memo002 and maybe one or two other tests). --- ghc/includes/mkDerivedConstants.c | 3 +++ ghc/rts/PrimOps.cmm | 1 + 2 files changed, 4 insertions(+) diff --git a/ghc/includes/mkDerivedConstants.c b/ghc/includes/mkDerivedConstants.c index 1baacdb..f5d6213 100644 --- a/ghc/includes/mkDerivedConstants.c +++ b/ghc/includes/mkDerivedConstants.c @@ -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); diff --git a/ghc/rts/PrimOps.cmm b/ghc/rts/PrimOps.cmm index d4a54c6..c9556f4 100644 --- a/ghc/rts/PrimOps.cmm +++ b/ghc/rts/PrimOps.cmm @@ -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) { -- 1.7.10.4