RTS: simplify read_heap_profiling_flag
authorThomas Miedema <thomasmiedema@gmail.com>
Thu, 19 May 2016 08:20:15 +0000 (10:20 +0200)
committerThomas Miedema <thomasmiedema@gmail.com>
Wed, 25 May 2016 17:25:01 +0000 (19:25 +0200)
Since 535896e58f7fc8d89a5ff34629a3471eac529d93, "args" is not mutated
anymore, so we don't need to create a temporary copy.

Reviewed by: bgamari

Differential Revision: https://phabricator.haskell.org/D2264

rts/RtsFlags.c

index b0ce8be..31a2c8b 100644 (file)
@@ -1588,15 +1588,10 @@ static void read_debug_flags(const char* arg)
 
 #ifdef PROFILING
 // Parse a "-h" flag, returning whether the parse resulted in an error.
-static rtsBool read_heap_profiling_flag(const char *arg_in)
+static rtsBool read_heap_profiling_flag(const char *arg)
 {
     // Already parsed "-h"
 
-    // For historical reasons the parser here mutates the arguments.
-    // However, for sanity we want to guarantee const-correctness and parsing
-    // really ought to be an immutable operation. To avoid rewriting the parser
-    // we just operate on a temporary copy of the argument.
-    char *arg = strdup(arg_in);
     rtsBool error = rtsFalse;
     switch (arg[2]) {
     case '\0':
@@ -1703,7 +1698,6 @@ static rtsBool read_heap_profiling_flag(const char *arg_in)
         error = rtsTrue;
     }
 
-    free(arg);
     return error;
 }
 #endif