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 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