From af85dd61a249e8e53a95e2f6cee88b324b7d19ec Mon Sep 17 00:00:00 2001
From: Wim Taymans <wim.taymans@gmail.com>
Date: Fri, 24 Oct 2014 09:56:50 +0200
Subject: [PATCH 28/31] bluez5-util: add destroy function
Add a destroy 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 85d4f93..7fac5bd 100644
--- a/src/modules/bluetooth/bluez5-util.c
+++ b/src/modules/bluetooth/bluez5-util.c
@@ -205,6 +205,8 @@ void pa_bluetooth_transport_unlink(pa_bluetooth_transport *t) {
void pa_bluetooth_transport_free(pa_bluetooth_transport *t) {
pa_assert(t);
+ if (t->destroy)
+ t->destroy(t);
pa_bluetooth_transport_unlink(t);
pa_xfree(t->owner);
diff --git a/src/modules/bluetooth/bluez5-util.h b/src/modules/bluetooth/bluez5-util.h
index 8db4a17..1a8a364 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_destroy_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_destroy_cb destroy;
void *userdata;
};
--
1.9.3