Re: [PATCH 3/4] Add the fp_selection_helper function to set the file pointer for the related functions

From: Arnaldo Carvalho de Melo
Date: Fri Sep 22 2017 - 10:26:22 EST


Em Fri, Sep 22, 2017 at 11:03:27AM +0200, Jiri Olsa escreveu:
> On Mon, Sep 18, 2017 at 01:55:21PM +0800, yuzhoujian wrote:
> > Signed-off-by: yuzhoujian <yuzhoujian@xxxxxxxxxxxxxxx>
> > ---
> > tools/perf/builtin-script.c | 24 ++++++++++++++++--------
> > 1 file changed, 16 insertions(+), 8 deletions(-)
> >
> > diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
> > index f709f6f..89bab68 100644
> > --- a/tools/perf/builtin-script.c
> > +++ b/tools/perf/builtin-script.c
> > @@ -1527,6 +1527,13 @@ static int cleanup_scripting(void)
> > return scripting_ops ? scripting_ops->stop_script() : 0;
> > }
> >
> > +static FILE *fp_selection_helper(bool per_event_dump)
> > +{
> > + if (per_event_dump == false)
> > + return stdout;
> > + else
> > + return per_event_dump_file;
>
> when's the per_event_dump_file ever set?

And my first reaction with this "helper" was: what is this needed for?!?
Why not have a local variable in the function where the whole chain is
called from and there set the output doing this 'perf_event_dump' test
_just once_.

Also, using 'per_event_dump == false' for a boolean variable is valid,
but utterly uncommon and unnecessary, why not:

FILE *fp = per_event_dump ? per_event_dump_file : stdout;

then use fp to pass to the initial function, etc?

- Arnaldo