diff options
Diffstat (limited to 'rts/CheckUnload.c')
-rw-r--r-- | rts/CheckUnload.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/rts/CheckUnload.c b/rts/CheckUnload.c index 2c01113f63..34f976db4d 100644 --- a/rts/CheckUnload.c +++ b/rts/CheckUnload.c @@ -271,7 +271,8 @@ void checkUnload (StgClosure *static_objects) addrs = allocHashTable(); - for (p = static_objects; p != END_OF_STATIC_LIST; p = link) { + for (p = static_objects; p != END_OF_STATIC_OBJECT_LIST; p = link) { + p = UNTAG_STATIC_LIST_PTR(p); checkAddress(addrs, p); info = get_itbl(p); link = *STATIC_LINK(info, p); @@ -279,8 +280,9 @@ void checkUnload (StgClosure *static_objects) // CAFs on revertible_caf_list are not on static_objects for (p = (StgClosure*)revertible_caf_list; - p != END_OF_STATIC_LIST; + p != END_OF_CAF_LIST; p = ((StgIndStatic *)p)->static_link) { + p = UNTAG_STATIC_LIST_PTR(p); checkAddress(addrs, p); } |