From 14eafbfb8ba5f803ae378e234936dac9a48ed9a4 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 31 Jul 2026 11:30:05 +0200 Subject: [PATCH] confeval: use snd_config_get_llong() in _to_integer() Replace the duplicated INTEGER/INTEGER64/STRING type dispatch with the new snd_config_get_llong() helper. Signed-off-by: Jaroslav Kysela --- src/confeval.c | 49 ++++++++----------------------------------------- 1 file changed, 8 insertions(+), 41 deletions(-) diff --git a/src/confeval.c b/src/confeval.c index fd6b6334..6c9acd7d 100644 --- a/src/confeval.c +++ b/src/confeval.c @@ -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 -- 2.52.0