mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05: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 filters_added:1;
|
||||||
unsigned int objects_listed:1;
|
unsigned int objects_listed:1;
|
||||||
|
DBusPendingCall *get_managed_objects_call;
|
||||||
|
|
||||||
struct spa_bt_backend *backend;
|
struct spa_bt_backend *backend;
|
||||||
struct spa_bt_backend *backends[BACKEND_NUM];
|
struct spa_bt_backend *backends[BACKEND_NUM];
|
||||||
|
|
@ -4259,6 +4260,9 @@ static void get_managed_objects_reply(DBusPendingCall *pending, void *user_data)
|
||||||
DBusMessage *r;
|
DBusMessage *r;
|
||||||
DBusMessageIter it[6];
|
DBusMessageIter it[6];
|
||||||
|
|
||||||
|
spa_assert(pending == monitor->get_managed_objects_call);
|
||||||
|
monitor->get_managed_objects_call = NULL;
|
||||||
|
|
||||||
r = dbus_pending_call_steal_reply(pending);
|
r = dbus_pending_call_steal_reply(pending);
|
||||||
if (r == NULL)
|
if (r == NULL)
|
||||||
return;
|
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_connection_send_with_reply(monitor->conn, m, &call, -1);
|
||||||
dbus_pending_call_set_notify(call, get_managed_objects_reply, monitor, NULL);
|
dbus_pending_call_set_notify(call, get_managed_objects_reply, monitor, NULL);
|
||||||
dbus_message_unref(m);
|
dbus_message_unref(m);
|
||||||
|
|
||||||
|
monitor->get_managed_objects_call = call;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void check_name_owner_reply(DBusPendingCall *pending, void *user_data)
|
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;
|
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_list_consume(t, &monitor->transport_list, link)
|
||||||
spa_bt_transport_free(t);
|
spa_bt_transport_free(t);
|
||||||
spa_list_consume(ep, &monitor->remote_endpoint_list, link)
|
spa_list_consume(ep, &monitor->remote_endpoint_list, link)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue