Messages in this thread Patch in this message | | | From | Raphaël Beamonte <> | Date | Mon, 14 Sep 2015 18:05:38 -0400 | Subject | Re: [PATCH 4/5] perf tools: Propagate error info from tp_format |
| |
2015-09-14 17:36 GMT-04:00 Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>: > Em Mon, Sep 14, 2015 at 04:59:41PM -0400, Raphaël Beamonte escreveu: >> 2015-09-14 16:53 GMT-04:00 Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>: >> > +++ b/tools/perf/util/evsel.c >> > @@ -234,7 +234,9 @@ struct perf_evsel *perf_evsel__newtp_idx(const char *sys, const char *name, int >> > struct perf_evsel *evsel = zalloc(perf_evsel__object.size); >> > int err = -ENOMEM; >> > >> > - if (evsel != NULL) { >> > + if (evsel == NULL) { >> > + goto out_err; >> > + } else { >> >> Is the else really necessary after a goto? > > Not really, we can remove it and all would be equivalent (the code > with/without should be the same), its just that I wanted to avoid > touching the identation to reduce patch size and since we need o open a > brace to declare that attr variable... > > - Arnaldo
Ok. Though, given the content of that function, we could probably declare attr in the first lines of the function and assign it its value after the if. But I understand the patch size argument! :o) On another subject, but on the same lines, shouldn't we use if (!evsel) instead of if (evsel == NULL)? (kernel code style if I'm not mistaken) Or is there something that prevents from using it here?
>> > struct perf_event_attr attr = { >> > .type = PERF_TYPE_TRACEPOINT, >> > .sample_type = (PERF_SAMPLE_RAW | PERF_SAMPLE_TIME | >> > @@ -261,6 +263,7 @@ struct perf_evsel *perf_evsel__newtp_idx(const char *sys, const char *name, int >> > out_free: >> > zfree(&evsel->name); >> > free(evsel); >> > +out_err: >> > return ERR_PTR(err); >> > } >> > >> > diff --git a/tools/perf/util/trace-event.c b/tools/perf/util/trace-event.c >> > index 8e3a60e3e15f..802bb868d446 100644 >> > --- a/tools/perf/util/trace-event.c >> > +++ b/tools/perf/util/trace-event.c >> > @@ -100,7 +100,7 @@ struct event_format* >> > trace_event__tp_format(const char *sys, const char *name) >> > { >> > if (!tevent_initialized && trace_event__init2()) >> > - return NULL; >> > + return ERR_PTR(-ENOMEM); >> > >> > return tp_format(sys, name); >> > }
| |