mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
spa: bluez: dbus: keep a reference to the GetManagedObjects() call
This commit is contained in:
parent
008d836608
commit
58d9fbff88
1 changed files with 11 additions and 0 deletions
|
|
@ -113,6 +113,7 @@ struct spa_bt_monitor {
|
|||
|
||||
unsigned int filters_added:1;
|
||||
unsigned int objects_listed:1;
|
||||
DBusPendingCall *get_managed_objects_call;
|
||||
|
||||
struct spa_bt_backend *backend;
|
||||
struct spa_bt_backend *backends[BACKEND_NUM];
|
||||
|
|
@ -4259,6 +4260,9 @@ static void get_managed_objects_reply(DBusPendingCall *pending, void *user_data)
|
|||
DBusMessage *r;
|
||||
DBusMessageIter it[6];
|
||||
|
||||
spa_assert(pending == monitor->get_managed_objects_call);
|
||||
monitor->get_managed_objects_call = NULL;
|
||||
|
||||
r = dbus_pending_call_steal_reply(pending);
|
||||
if (r == NULL)
|
||||
return;
|
||||
|
|
@ -4316,6 +4320,8 @@ static void get_managed_objects(struct spa_bt_monitor *monitor)
|
|||
dbus_connection_send_with_reply(monitor->conn, m, &call, -1);
|
||||
dbus_pending_call_set_notify(call, get_managed_objects_reply, monitor, NULL);
|
||||
dbus_message_unref(m);
|
||||
|
||||
monitor->get_managed_objects_call = call;
|
||||
}
|
||||
|
||||
static void check_name_owner_reply(DBusPendingCall *pending, void *user_data)
|
||||
|
|
@ -4695,6 +4701,11 @@ static int impl_clear(struct spa_handle *handle)
|
|||
monitor->filters_added = false;
|
||||
}
|
||||
|
||||
if (monitor->get_managed_objects_call) {
|
||||
dbus_pending_call_cancel(monitor->get_managed_objects_call);
|
||||
dbus_pending_call_unref(monitor->get_managed_objects_call);
|
||||
}
|
||||
|
||||
spa_list_consume(t, &monitor->transport_list, link)
|
||||
spa_bt_transport_free(t);
|
||||
spa_list_consume(ep, &monitor->remote_endpoint_list, link)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue