diff options
| author | Adrian Hunter <adrian.hunter@intel.com> | 2022-08-09 11:07:02 +0300 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2022-08-10 14:30:09 -0300 |
| commit | 806731a9465b42aaf887cbaf8bfee7eccc9417de (patch) | |
| tree | 7a1cf71e17d762a0f7dffd5c473b999d20147ff6 /tools/perf/util/parse-events.c | |
| parent | perf tests: Fix Track with sched_switch test for hybrid case (diff) | |
| download | linux-806731a9465b42aaf887cbaf8bfee7eccc9417de.tar.gz linux-806731a9465b42aaf887cbaf8bfee7eccc9417de.zip | |
perf tools: Do not pass NULL to parse_events()
Many cases do not use the extra error information provided by
parse_events and instead pass NULL as the struct parse_events_error
pointer. Add a wrapper for those cases so that the pointer is never
NULL.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20220809080702.6921-4-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/parse-events.c')
| -rw-r--r-- | tools/perf/util/parse-events.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index dfc7d7a0ec4e..f05e15acd33f 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -2240,6 +2240,17 @@ int __parse_events(struct evlist *evlist, const char *str, return ret; } +int parse_event(struct evlist *evlist, const char *str) +{ + struct parse_events_error err; + int ret; + + parse_events_error__init(&err); + ret = parse_events(evlist, str, &err); + parse_events_error__exit(&err); + return ret; +} + void parse_events_error__init(struct parse_events_error *err) { bzero(err, sizeof(*err)); @@ -2256,13 +2267,8 @@ void parse_events_error__exit(struct parse_events_error *err) void parse_events_error__handle(struct parse_events_error *err, int idx, char *str, char *help) { - if (WARN(!str, "WARNING: failed to provide error string\n")) - goto out_free; - if (!err) { - /* Assume caller does not want message printed */ - pr_debug("event syntax error: %s\n", str); + if (WARN(!str || !err, "WARNING: failed to provide error string or struct\n")) goto out_free; - } switch (err->num_errors) { case 0: err->idx = idx; |
