diff options
Diffstat (limited to 'tools/perf/builtin-mem.c')
-rw-r--r-- | tools/perf/builtin-mem.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/tools/perf/builtin-mem.c b/tools/perf/builtin-mem.c index 651188c1d825..5ec83cd85650 100644 --- a/tools/perf/builtin-mem.c +++ b/tools/perf/builtin-mem.c @@ -4,6 +4,7 @@ #include <sys/stat.h> #include <unistd.h> #include "builtin.h" +#include "perf.h" #include <subcmd/parse-options.h> #include "util/auxtrace.h" @@ -73,6 +74,7 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem, int rec_argc, i = 0, j; int start, end; const char **rec_argv; + char *event_name_storage = NULL; int ret; struct perf_mem_event *e; struct perf_pmu *pmu; @@ -139,7 +141,7 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem, rec_argv[i++] = "--data-page-size"; start = i; - ret = perf_mem_events__record_args(rec_argv, &i); + ret = perf_mem_events__record_args(rec_argv, &i, &event_name_storage); if (ret) goto out; end = i; @@ -169,6 +171,7 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem, ret = cmd_record(i, rec_argv); out: + free(event_name_storage); free(rec_argv); return ret; } @@ -520,6 +523,7 @@ int cmd_mem(int argc, const char **argv) NULL, NULL }; + int ret; argc = parse_options_subcommand(argc, argv, mem_options, mem_subcommands, mem_usage, PARSE_OPT_STOP_AT_NON_OPTION); @@ -535,14 +539,15 @@ int cmd_mem(int argc, const char **argv) } if (strlen(argv[0]) > 2 && strstarts("record", argv[0])) - return __cmd_record(argc, argv, &mem, record_options); + ret = __cmd_record(argc, argv, &mem, record_options); else if (strlen(argv[0]) > 2 && strstarts("report", argv[0])) - return __cmd_report(argc, argv, &mem, report_options); + ret = __cmd_report(argc, argv, &mem, report_options); else usage_with_options(mem_usage, mem_options); /* free usage string allocated by parse_options_subcommand */ free((void *)mem_usage[0]); + free(sort_order_help); - return 0; + return ret; } |