diff --git a/rts/Stats.c b/rts/Stats.c index b2e48c48cd43c14237f307b867d49da48d49fd24..461eb7604c7b0d58f2a70fdccafc162705477110 100644 --- a/rts/Stats.c +++ b/rts/Stats.c @@ -657,11 +657,8 @@ static void init_RTSSummaryStats(RTSSummaryStats* sum) static void free_RTSSummaryStats(RTSSummaryStats * sum) { - if (!sum) { return; } - if (!sum->gc_summary_stats) { - stgFree(sum->gc_summary_stats); - sum->gc_summary_stats = NULL; - } + stgFree(sum->gc_summary_stats); + sum->gc_summary_stats = NULL; } static void report_summary(const RTSSummaryStats* sum) @@ -1257,11 +1254,12 @@ stat_exit (void) } } - free_RTSSummaryStats(&sum); statsFlush(); statsClose(); } + free_RTSSummaryStats(&sum); + if (GC_coll_cpu) { stgFree(GC_coll_cpu); GC_coll_cpu = NULL;