X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsFlags.c;h=19954f80e9d383bb895c9f3d35719b169c3de9c4;hb=063b822bb68f84dd9729327bb1765637c25aceb4;hp=a6dbaf02d0df8f75f8c9d1ac5d12437e1af61539;hpb=a6f61eeea1db7592d1a0f92d61a3d9971daecd73;p=ghc-hetmet.git diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index a6dbaf0..19954f8 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -70,6 +70,7 @@ void initRtsFlagsDefaults(void) RtsFlags.GcFlags.minOldGenSize = (1024 * 1024) / BLOCK_SIZE; RtsFlags.GcFlags.maxHeapSize = 0; /* off by default */ RtsFlags.GcFlags.heapSizeSuggestion = 0; /* none */ + RtsFlags.GcFlags.heapSizeSuggestionAuto = rtsFalse; RtsFlags.GcFlags.pcFreeHeap = 3; /* 3% */ RtsFlags.GcFlags.oldGenFactor = 2; RtsFlags.GcFlags.generations = 2; @@ -690,9 +691,13 @@ error = rtsTrue; break; case 'H': - RtsFlags.GcFlags.heapSizeSuggestion = - (nat)(decodeSize(rts_argv[arg], 2, BLOCK_SIZE, HS_WORD_MAX) / BLOCK_SIZE); - break; + if (rts_argv[arg][2] == '\0') { + RtsFlags.GcFlags.heapSizeSuggestionAuto = rtsTrue; + } else { + RtsFlags.GcFlags.heapSizeSuggestion = + (nat)(decodeSize(rts_argv[arg], 2, BLOCK_SIZE, HS_WORD_MAX) / BLOCK_SIZE); + } + break; #ifdef RTS_GTK_FRONTPANEL case 'f': @@ -1384,3 +1389,18 @@ setFullProgArgv(int argc, char *argv[]) full_prog_argv[argc] = NULL; } +void +freeFullProgArgv (void) +{ + int i; + + if (full_prog_argv != NULL) { + for (i = 0; i < full_prog_argc; i++) { + stgFree(full_prog_argv[i]); + } + stgFree(full_prog_argv); + } + + full_prog_argc = 0; + full_prog_argv = NULL; +}