Messages in this thread | | | Date | Mon, 14 Sep 2015 23:35:57 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 4/5] perf tools: Propagate error info from tp_format |
| |
Em Mon, Sep 14, 2015 at 06:05:38PM -0400, Raphaël Beamonte escreveu: > 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... > > 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)
Yeah, in other times I would have cleaned it all up, having that else is ugly, but review time is more expensive, I think, so we need to reduce its cost.
Cleaning it up makes it easier to read, but we get the info about when that particular code was written buried a bit below the reindentation cset.
Would be nice to have a 'git blame' that would just unwind things like that :-)
> 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?
I'd say both are ok. (evsel) is shorter than (evsel != NULL), but the later is more expressive, at a glance you know it is a pointer, etc.
- Arnaldo
> >> > 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); > >> > }
| |