diff options
author | Ben Gamari <ben@smart-cactus.org> | 2019-03-05 00:07:06 -0500 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-03-06 15:53:32 -0500 |
commit | a4944d8d98770b869f6aa5fb667877c56c3f8825 (patch) | |
tree | 26ccb8bf599603af7620c974bf0ab2560eb39103 | |
parent | 5aab1d9ca927a058135ca9a08c10ea3474cbe251 (diff) | |
download | haskell-a4944d8d98770b869f6aa5fb667877c56c3f8825.tar.gz |
Fix it
-rw-r--r-- | rts/sm/Compact.c | 8 | ||||
-rw-r--r-- | rts/sm/Compact.h | 4 | ||||
-rw-r--r-- | rts/sm/GC.c | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/rts/sm/Compact.c b/rts/sm/Compact.c index bd45489da1..77523aea08 100644 --- a/rts/sm/Compact.c +++ b/rts/sm/Compact.c @@ -940,7 +940,9 @@ update_bkwd_compact( generation *gen ) } void -compact(StgClosure *static_objects, StgWeak *dead_weak_ptr_list, StgTSO *resurrected_threads) +compact(StgClosure *static_objects, + StgWeak **dead_weak_ptr_list, + StgTSO **resurrected_threads) { W_ n, g, blocks; generation *gen; @@ -958,7 +960,7 @@ compact(StgClosure *static_objects, StgWeak *dead_weak_ptr_list, StgTSO *resurre } if (dead_weak_ptr_list != NULL) { - thread((void *)&dead_weak_ptr_list); // tmp + thread((void *)dead_weak_ptr_list); // tmp } // mutable lists @@ -981,7 +983,7 @@ compact(StgClosure *static_objects, StgWeak *dead_weak_ptr_list, StgTSO *resurre } // any threads resurrected during this GC - thread((void *)&resurrected_threads); + thread((void *)resurrected_threads); // the task list { diff --git a/rts/sm/Compact.h b/rts/sm/Compact.h index ba39c30acd..570de7a340 100644 --- a/rts/sm/Compact.h +++ b/rts/sm/Compact.h @@ -46,7 +46,7 @@ is_marked(StgPtr p, bdescr *bd) } void compact (StgClosure *static_objects, - StgWeak *dead_weak_ptr_list, - StgTSO *resurrected_threads); + StgWeak **dead_weak_ptr_list, + StgTSO **resurrected_threads); #include "EndPrivate.h" diff --git a/rts/sm/GC.c b/rts/sm/GC.c index b3cc4482aa..0544fd29da 100644 --- a/rts/sm/GC.c +++ b/rts/sm/GC.c @@ -473,7 +473,9 @@ GarbageCollect (uint32_t collect_gen, // Finally: compact or sweep the oldest generation. if (major_gc && oldest_gen->mark) { if (oldest_gen->compact) - compact(gct->scavenged_static_objects, dead_weak_ptr_list, resurrected_threads); + compact(gct->scavenged_static_objects, + &dead_weak_ptr_list, + &resurrected_threads); else sweep(oldest_gen); } |