summaryrefslogtreecommitdiff
path: root/rts/sm
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2011-04-12 09:41:01 +0100
committerSimon Marlow <marlowsd@gmail.com>2011-04-12 09:41:23 +0100
commit4f018b471c7c5db858beb508b8430ae4d0621173 (patch)
treeb65f10ff3e1ec153ea8a024c93fca765da594cee /rts/sm
parentd76fcd210a944bec112e3bd0888ed5ead5e7b816 (diff)
downloadhaskell-4f018b471c7c5db858beb508b8430ae4d0621173.tar.gz
isAlive: re-apply the tag if we find a forwarding pointer. This is a
real bug, spotted by Marcin Orczyk (thanks!). I'm not sure if it lead to any actual crashes.
Diffstat (limited to 'rts/sm')
-rw-r--r--rts/sm/GCAux.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/sm/GCAux.c b/rts/sm/GCAux.c
index 7f3968faae..12e106b0e0 100644
--- a/rts/sm/GCAux.c
+++ b/rts/sm/GCAux.c
@@ -79,7 +79,7 @@ isAlive(StgClosure *p)
if (IS_FORWARDING_PTR(info)) {
// alive!
- return (StgClosure*)UN_FORWARDING_PTR(info);
+ return TAG_CLOSURE(tag,(StgClosure*)UN_FORWARDING_PTR(info));
}
info = INFO_PTR_TO_STRUCT(info);