]> git.alsa-project.org Git - alsa-lib.git/commitdiff
confeval: use snd_config_get_llong() in _to_integer()
authorJaroslav Kysela <perex@perex.cz>
Fri, 31 Jul 2026 09:30:05 +0000 (11:30 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 31 Jul 2026 10:26:29 +0000 (12:26 +0200)
Replace the duplicated INTEGER/INTEGER64/STRING type dispatch with
the new snd_config_get_llong() helper.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/confeval.c

index fd6b6334fa3eadaaa62d3278efa7be670dea7e6e..6c9acd7db704dbb062002500066f7ea13fb761ca 100644 (file)
@@ -76,49 +76,16 @@ static int _parse_integer(value_type_t *val, const char **s)
 
 static int _to_integer(value_type_t *val, snd_config_t *c)
 {
+       long long v;
        int err;
 
-       switch(snd_config_get_type(c)) {
-       case SND_CONFIG_TYPE_INTEGER:
-               {
-                       long v;
-                       err = snd_config_get_integer(c, &v);
-                       if (err >= 0)
-                               *val = v;
-               }
-               break;
-       case SND_CONFIG_TYPE_INTEGER64:
-               {
-                       long long v;
-                       err = snd_config_get_integer64(c, &v);
-                       if (err >= 0) {
-                               *val = v;
-                               if (((long long)*val) != v)
-                                       return -ERANGE;
-                               return 0;
-                       }
-               }
-               break;
-       case SND_CONFIG_TYPE_STRING:
-               {
-                       const char *s;
-                       long long v;
-                       err = snd_config_get_string(c, &s);
-                       if (err >= 0) {
-                               err = safe_strtoll(s, &v);
-                               if (err >= 0) {
-                                       *val = v;
-                                       if (((long long)*val) != v)
-                                               return -ERANGE;
-                                       return 0;
-                               }
-                       }
-               }
-               break;
-       default:
-               return -EINVAL;
-       }
-       return err;
+       err = snd_config_get_llong(c, &v, 0);
+       if (err < 0)
+               return err;
+       *val = v;
+       if (((long long)*val) != v)
+               return -ERANGE;
+       return 0;
 }
 
 #ifndef DOC_HIDDEN