return err;
}
- err = snd_config_top(&mgr->local_config);
- if (err < 0)
- goto _err;
-
- err = snd_config_top(&mgr->macros);
- if (err < 0)
- goto _err;
-
mgr->card_name = strdup(card_name);
if (mgr->card_name == NULL) {
err = -ENOMEM;
const char *name;
int err;
+ err = snd_config_top(&uc_mgr->local_config);
+ if (err < 0)
+ return err;
+
+ err = snd_config_top(&uc_mgr->macros);
+ if (err < 0)
+ return err;
+
name = uc_mgr->card_name;
if (strncmp(name, "hw:", 3) == 0) {
err = get_by_card(uc_mgr, name);
struct list_head *pos, *npos;
struct use_case_verb *verb;
+ if (uc_mgr->local_config) {
+ snd_config_delete(uc_mgr->local_config);
+ uc_mgr->local_config = NULL;
+ }
+ if (uc_mgr->macros) {
+ snd_config_delete(uc_mgr->macros);
+ uc_mgr->macros = NULL;
+ }
list_for_each_safe(pos, npos, &uc_mgr->verb_list) {
verb = list_entry(pos, struct use_case_verb, list);
free(verb->name);
void uc_mgr_free(snd_use_case_mgr_t *uc_mgr)
{
- if (uc_mgr->local_config)
- snd_config_delete(uc_mgr->local_config);
- if (uc_mgr->macros)
- snd_config_delete(uc_mgr->macros);
uc_mgr_free_verb(uc_mgr);
uc_mgr_free_ctl_list(uc_mgr);
free(uc_mgr->card_name);