Repository : ssh://[email protected]/ghc On branch : master Link : http://ghc.haskell.org/trac/ghc/changeset/1fb558d13d702246fe45b11d78011f32910d90b7/ghc
>--------------------------------------------------------------- commit 1fb558d13d702246fe45b11d78011f32910d90b7 Author: Simon Marlow <[email protected]> Date: Wed Sep 4 11:08:10 2013 +0100 Don't refer to oc->next after freeing oc. >--------------------------------------------------------------- 1fb558d13d702246fe45b11d78011f32910d90b7 rts/CheckUnload.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rts/CheckUnload.c b/rts/CheckUnload.c index 0485ed4..d3fb893 100644 --- a/rts/CheckUnload.c +++ b/rts/CheckUnload.c @@ -246,7 +246,7 @@ void checkUnload (StgClosure *static_objects) HashTable *addrs; StgClosure* p; const StgInfoTable *info; - ObjectCode *oc, *prev; + ObjectCode *oc, *prev, *next; gen_workspace *ws; StgClosure* link; @@ -283,7 +283,8 @@ void checkUnload (StgClosure *static_objects) // marked as unreferenced can be physically unloaded, because we // have no references to it. prev = NULL; - for (oc = unloaded_objects; oc; prev = oc, oc = oc->next) { + for (oc = unloaded_objects; oc; prev = oc, oc = next) { + next = oc->next; if (oc->referenced == 0) { if (prev == NULL) { unloaded_objects = oc->next; _______________________________________________ ghc-commits mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-commits
