[alsa-devel] [PATCH v2 2/7] topology: Define a free handler for the element
mengdong.lin at linux.intel.com
mengdong.lin at linux.intel.com
Wed Mar 30 09:10:45 CEST 2016
From: Mengdong Lin <mengdong.lin at linux.intel.com>
This handler is defined for type-specific destruction of an element.
Signed-off-by: Mengdong Lin <mengdong.lin at linux.intel.com>
diff --git a/src/topology/elem.c b/src/topology/elem.c
index 00f9eea..f2afaaf 100644
--- a/src/topology/elem.c
+++ b/src/topology/elem.c
@@ -83,8 +83,12 @@ void tplg_elem_free(struct tplg_elem *elem)
/* free struct snd_tplg_ object,
* the union pointers share the same address
*/
- if (elem->obj)
+ if (elem->obj) {
+ if (elem->free)
+ elem->free(elem->obj);
+
free(elem->obj);
+ }
free(elem);
}
diff --git a/src/topology/tplg_local.h b/src/topology/tplg_local.h
index 4915b1a..7368a86 100644
--- a/src/topology/tplg_local.h
+++ b/src/topology/tplg_local.h
@@ -127,6 +127,8 @@ struct tplg_elem {
*/
struct list_head ref_list;
struct list_head list; /* list of all elements with same type */
+
+ void (*free)(void *obj);
};
struct map_elem {
--
2.5.0
More information about the Alsa-devel
mailing list