[Mesa-dev] [PATCH] gallium/util: make use of strtol() in debug_get_num_option()

Nicolai Hähnle nhaehnle at gmail.com
Mon Sep 19 08:43:53 UTC 2016


Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

However, you might want to check with the VMWare guys. I seem to recall 
that MSVC is a bit peculiar with some of these library functions.

Cheers,
Nicolai

On 14.09.2016 20:37, Samuel Pitoiset wrote:
> This allows to use hexadecimal numbers which are automatically
> detected by strtol() when the base is 0.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>  src/gallium/auxiliary/util/u_debug.c | 25 ++++++++-----------------
>  1 file changed, 8 insertions(+), 17 deletions(-)
>
> diff --git a/src/gallium/auxiliary/util/u_debug.c b/src/gallium/auxiliary/util/u_debug.c
> index 4619526..dd3e167 100644
> --- a/src/gallium/auxiliary/util/u_debug.c
> +++ b/src/gallium/auxiliary/util/u_debug.c
> @@ -203,25 +203,16 @@ debug_get_num_option(const char *name, long dfault)
>     const char *str;
>
>     str = os_get_option(name);
> -   if (!str)
> +   if (!str) {
>        result = dfault;
> -   else {
> -      long sign;
> -      char c;
> -      c = *str++;
> -      if (c == '-') {
> -	 sign = -1;
> -	 c = *str++;
> -      }
> -      else {
> -	 sign = 1;
> -      }
> -      result = 0;
> -      while ('0' <= c && c <= '9') {
> -	 result = result*10 + (c - '0');
> -	 c = *str++;
> +   } else {
> +      char *endptr;
> +
> +      result = strtol(str, &endptr, 0);
> +      if (str == endptr) {
> +         /* Restore the default value when no digits were found. */
> +         result = dfault;
>        }
> -      result *= sign;
>     }
>
>     if (debug_get_option_should_print())
>


More information about the mesa-dev mailing list