]> git.alsa-project.org Git - alsa-lib.git/commitdiff
topology: move the elem->list delete to tplg_elem_free()
authorJaroslav Kysela <perex@perex.cz>
Fri, 3 Jan 2020 21:07:11 +0000 (22:07 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 3 Jan 2020 22:38:08 +0000 (23:38 +0100)
The tplg_elem_free() is called in the error path from many places
and it is expected that the element object will be unregistered
from the tplg structure, too.

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

index ed5b5f13054fa3599841a99a5bab679e81b08db0..cbd7f4b636c1645f73f9484ec9958b6bc8197f46 100644 (file)
@@ -301,6 +301,8 @@ struct tplg_elem *tplg_elem_new(void)
 
 void tplg_elem_free(struct tplg_elem *elem)
 {
+       list_del(&elem->list);
+
        tplg_ref_free_list(&elem->ref_list);
 
        /* free struct snd_tplg_ object,
@@ -323,7 +325,6 @@ void tplg_elem_free_list(struct list_head *base)
 
        list_for_each_safe(pos, npos, base) {
                elem = list_entry(pos, struct tplg_elem, list);
-               list_del(&elem->list);
                tplg_elem_free(elem);
        }
 }