From: Jaroslav Kysela Date: Tue, 5 Nov 2019 09:21:36 +0000 (+0100) Subject: ucm: do not cache all control devices in get_card_long_name() X-Git-Tag: v1.2.1~20 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=b9b2247943751714151dc19de57905caf61c618b;p=alsa-lib.git ucm: do not cache all control devices in get_card_long_name() Signed-off-by: Jaroslav Kysela --- diff --git a/src/ucm/parser.c b/src/ucm/parser.c index 75b04193..7f7e258d 100644 --- a/src/ucm/parser.c +++ b/src/ucm/parser.c @@ -1453,6 +1453,9 @@ static int get_card_long_name(snd_use_case_mgr_t *mgr, char *longname) while (card >= 0) { char name[32]; + /* most probably, we do not need to cache all CTL devices here */ + uc_mgr_free_ctl_list(mgr); + sprintf(name, "hw:%d", card); err = get_card_info(mgr, name, &ctl, info); @@ -1472,6 +1475,8 @@ static int get_card_long_name(snd_use_case_mgr_t *mgr, char *longname) } } + uc_mgr_free_ctl_list(mgr); + return -1; } @@ -1577,8 +1582,10 @@ __longname: __parse: err = parse_master_file(uc_mgr, cfg); snd_config_delete(cfg); - if (err < 0) + if (err < 0) { + uc_mgr_free_ctl_list(uc_mgr); uc_mgr_free_verb(uc_mgr); + } return err;