From c004bc8c66d7c1397c732295e5c2f3fa12f5bb2c Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Tue, 23 Dec 2008 09:36:42 +0100 Subject: Fix signal emissions when removing adapters --- src/manager.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/manager.c b/src/manager.c index 198dd58c..3b62875f 100644 --- a/src/manager.c +++ b/src/manager.c @@ -351,12 +351,9 @@ static void manager_remove_adapter(struct btd_adapter *adapter) uint16_t dev_id = adapter_get_dev_id(adapter); const gchar *path = adapter_get_path(adapter); - manager_update_adapters(); + adapters = g_slist_remove(adapters, adapter); - g_dbus_emit_signal(connection, "/", - MANAGER_INTERFACE, "AdapterRemoved", - DBUS_TYPE_OBJECT_PATH, &path, - DBUS_TYPE_INVALID); + manager_update_adapters(); if (default_adapter_id == dev_id || default_adapter_id < 0) { int new_default = hci_get_route(NULL); @@ -364,7 +361,11 @@ static void manager_remove_adapter(struct btd_adapter *adapter) manager_set_default_adapter(new_default); } - adapters = g_slist_remove(adapters, adapter); + g_dbus_emit_signal(connection, "/", + MANAGER_INTERFACE, "AdapterRemoved", + DBUS_TYPE_OBJECT_PATH, &path, + DBUS_TYPE_INVALID); + adapter_remove(adapter); } -- cgit