Re: [PATCH 09/12] perf diff: Add weighted diff computation way tocompare hist entries

From: Jiri Olsa
Date: Fri Sep 07 2012 - 05:28:39 EST


On Fri, Sep 07, 2012 at 02:58:19PM +0900, Namhyung Kim wrote:
> On Thu, 6 Sep 2012 17:47:03 +0200, Jiri Olsa wrote:
> > Adding 'wdiff' as new computation way to compare hist entries.

SNIP

> > +static int setup_compute_opt_wdiff(char *opt)
> > +{
> > + char *w1_str = opt;
> > + char *w2_str;
> > +
> > + int ret = -EINVAL;
> > +
> > + do {
> > + if (!opt)
> > + break;
> > +
> > + w2_str = strchr(opt, ',');
> > + if (!w2_str)
> > + break;
> > +
> > + *w2_str++ = 0x0;
> > + if (!*w2_str)
> > + break;
> > +
> > + compute_wdiff_w1 = strtol(w1_str, NULL, 10);
> > + compute_wdiff_w2 = strtol(w2_str, NULL, 10);
> > +
> > + if (!compute_wdiff_w1 || !compute_wdiff_w2)
> > + break;
> > +
> > + pr_debug("compute wdiff w1(%" PRId64 ") w2(%" PRId64 ")\n",
> > + compute_wdiff_w1, compute_wdiff_w2);
> > + ret = 0;
> > +
> > + } while (0);
>
> I don't see why this do { } while(0) loop is necessary.
> How about this?
>
> w1 = strtol(opt, &tmp, 10);
> if (*tmp != ',')
> goto error;
>
> opt = tmp + 1;
> w2 = strtol(opt, &tmp, 10);
> if (*tmp != '\0')
> goto error;
>
> if (!w1 || !w2)
> goto error;

I do this not to use labels & goto ;)

jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/