[pulseaudio-discuss] [PATCH 2/4] bluez5-util: add dispose function

Wim Taymans wim.taymans at gmail.com
Mon Sep 1 06:41:51 PDT 2014


Add a dispose function to the transport that is called before freeing
the transport. Useful for cleaning up extra userdata.
---
 src/modules/bluetooth/bluez5-util.c | 2 ++
 src/modules/bluetooth/bluez5-util.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
index 93677b4..b5c0726 100644
--- a/src/modules/bluetooth/bluez5-util.c
+++ b/src/modules/bluetooth/bluez5-util.c
@@ -197,6 +197,8 @@ void pa_bluetooth_transport_put(pa_bluetooth_transport *t) {
 void pa_bluetooth_transport_free(pa_bluetooth_transport *t) {
     pa_assert(t);
 
+    if (t->dispose)
+        t->dispose (t);
     pa_hashmap_remove(t->device->discovery->transports, t->path);
     pa_xfree(t->owner);
     pa_xfree(t->path);
diff --git a/src/modules/bluetooth/bluez5-util.h b/src/modules/bluetooth/bluez5-util.h
index 67377e9..1c64d72 100644
--- a/src/modules/bluetooth/bluez5-util.h
+++ b/src/modules/bluetooth/bluez5-util.h
@@ -60,6 +60,7 @@ typedef enum pa_bluetooth_transport_state {
 
 typedef int (*pa_bluetooth_transport_acquire_cb)(pa_bluetooth_transport *t, bool optional, size_t *imtu, size_t *omtu);
 typedef void (*pa_bluetooth_transport_release_cb)(pa_bluetooth_transport *t);
+typedef void (*pa_bluetooth_transport_dispose_cb)(pa_bluetooth_transport *t);
 
 struct pa_bluetooth_transport {
     pa_bluetooth_device *device;
@@ -76,6 +77,7 @@ struct pa_bluetooth_transport {
 
     pa_bluetooth_transport_acquire_cb acquire;
     pa_bluetooth_transport_release_cb release;
+    pa_bluetooth_transport_dispose_cb dispose;
     void *userdata;
 };
 
-- 
1.9.3



More information about the pulseaudio-discuss mailing list