Re: [resend, PATCH v2] perf tools: substitute yet another strtoull()

From: Jiri Olsa
Date: Mon Jan 29 2018 - 10:46:23 EST


On Mon, Jan 29, 2018 at 03:03:59PM +0200, Andy Shevchenko wrote:
> Instead of home grown function let's use what library provides us.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka

> ---
> - recend after couple of years of silence
> - hopefully it will be commented / accepted now
> tools/perf/util/util.c | 24 ++----------------------
> 1 file changed, 2 insertions(+), 22 deletions(-)
>
> diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
> index 443892dabedb..1019bbc5dbd8 100644
> --- a/tools/perf/util/util.c
> +++ b/tools/perf/util/util.c
> @@ -340,35 +340,15 @@ size_t hex_width(u64 v)
> return n;
> }
>
> -static int hex(char ch)
> -{
> - if ((ch >= '0') && (ch <= '9'))
> - return ch - '0';
> - if ((ch >= 'a') && (ch <= 'f'))
> - return ch - 'a' + 10;
> - if ((ch >= 'A') && (ch <= 'F'))
> - return ch - 'A' + 10;
> - return -1;
> -}
> -
> /*
> * While we find nice hex chars, build a long_val.
> * Return number of chars processed.
> */
> int hex2u64(const char *ptr, u64 *long_val)
> {
> - const char *p = ptr;
> - *long_val = 0;
> -
> - while (*p) {
> - const int hex_val = hex(*p);
> + char *p;
>
> - if (hex_val < 0)
> - break;
> -
> - *long_val = (*long_val << 4) | hex_val;
> - p++;
> - }
> + *long_val = strtoull(ptr, &p, 16);
>
> return p - ptr;
> }
> --
> 2.15.1
>