perf annotate: Own objdump_path and disassembler_style strings
Make struct annotation_options own the strings objdump_path and disassembler_style, freeing them on exit. Add missing strdup for disassembler_style when read from a config file. Committer notes: Converted free(obj->member) to zfree(&obj->member) in annotation_options__exit() Signed-off-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Andres Freund <andres@anarazel.de> Cc: German Gomez <german.gomez@arm.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Sandipan Das <sandipan.das@amd.com> Cc: Tom Rix <trix@redhat.com> Cc: llvm@lists.linux.dev Link: https://lore.kernel.org/r/20230328235543.1082207-2-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
217b7d41ea
commit
56d9117c50
@@ -3206,7 +3206,11 @@ static int annotation__config(const char *var, const char *value, void *data)
|
||||
} else if (!strcmp(var, "annotate.use_offset")) {
|
||||
opt->use_offset = perf_config_bool("use_offset", value);
|
||||
} else if (!strcmp(var, "annotate.disassembler_style")) {
|
||||
opt->disassembler_style = value;
|
||||
opt->disassembler_style = strdup(value);
|
||||
if (!opt->disassembler_style) {
|
||||
pr_err("Not enough memory for annotate.disassembler_style\n");
|
||||
return -1;
|
||||
}
|
||||
} else if (!strcmp(var, "annotate.demangle")) {
|
||||
symbol_conf.demangle = perf_config_bool("demangle", value);
|
||||
} else if (!strcmp(var, "annotate.demangle_kernel")) {
|
||||
@@ -3231,8 +3235,10 @@ void annotation_options__init(struct annotation_options *opt)
|
||||
}
|
||||
|
||||
|
||||
void annotation_options__exit(struct annotation_options *opt __maybe_unused)
|
||||
void annotation_options__exit(struct annotation_options *opt)
|
||||
{
|
||||
zfree(&opt->disassembler_style);
|
||||
zfree(&opt->objdump_path);
|
||||
}
|
||||
|
||||
void annotation_config__init(struct annotation_options *opt)
|
||||
|
||||
Reference in New Issue
Block a user