X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FProfHeap.c;h=ea71e20fd40ce0c6ea909c3eac71bcbd9facf1c8;hp=4aecd0b5b3fcc6b9b92db05c4a3f290a686eba33;hb=9ff76535edb25ab7434284adddb5c64708ecb547;hpb=1cb0eb071f1316d6650f354166506789a2638720 diff --git a/rts/ProfHeap.c b/rts/ProfHeap.c index 4aecd0b..ea71e20 100644 --- a/rts/ProfHeap.c +++ b/rts/ProfHeap.c @@ -137,9 +137,7 @@ static char *type_names[] = { , "RET_BCO" , "RET_SMALL" - , "RET_VEC_SMALL" , "RET_BIG" - , "RET_VEC_BIG" , "RET_DYN" , "UPDATE_FRAME" , "CATCH_FRAME" @@ -316,6 +314,13 @@ initEra(Census *census) census->drag_total = 0; } +STATIC_INLINE void +freeEra(Census *census) +{ + arenaFree(census->arena); + freeHashTable(census->hash, NULL); +} + /* -------------------------------------------------------------------------- * Increases era by 1 and initialize census[era]. * Reallocates gi[] and increases its size if needed. @@ -355,6 +360,10 @@ void initProfiling1( void ) { } +void freeProfiling1( void ) +{ +} + void initProfiling2( void ) { if (RtsFlags.ProfFlags.doHeapProfile) { @@ -493,6 +502,14 @@ endHeapProfiling(void) } #endif + { + nat t; + for (t = 0; t <= era; t++) { + freeEra( &censuses[t] ); + } + } + stgFree(censuses); + seconds = mut_user_time(); printSample(rtsTrue, seconds); printSample(rtsFalse, seconds);