CAPI/Discocvery: Unset discovery always remove the callback 87/23787/2
authorWu Jiangbo <jiangbox.wu@intel.com>
Thu, 3 Jul 2014 04:48:01 +0000 (12:48 +0800)
committerWu Jiangbo <jiangbox.wu@intel.com>
Thu, 3 Jul 2014 07:48:12 +0000 (15:48 +0800)
Change-Id: I1410221796af689a0450e3538b99e5acf3242a0e
Signed-off-by: Wu Jiangbo <jiangbox.wu@intel.com>
capi/bluetooth.c

index 8b60880..a90ea18 100644 (file)
@@ -1605,14 +1605,16 @@ int bt_adapter_unset_device_discovery_state_changed_cb(void)
                adapter_discovering_node = NULL;
        }
 
+       if (unpaired_device_removed_node) {
+               g_free(unpaired_device_removed_node);
+               unpaired_device_removed_node = NULL;
+       }
+
        if (paired_device_removed_node == NULL &&
                        generic_device_removed_set == TRUE) {
                bluez_adapter_unset_device_removed_cb(default_adapter);
 
                generic_device_removed_set = FALSE;
-
-               g_free(unpaired_device_removed_node);
-               unpaired_device_removed_node = NULL;
        }
 
        return BT_SUCCESS;
@@ -2138,6 +2140,11 @@ int bt_device_unset_bond_destroyed_cb(void)
        if (default_adapter == NULL)
                return BT_ERROR_ADAPTER_NOT_FOUND;
 
+       if (paired_device_removed_node) {
+               g_free(paired_device_removed_node);
+               paired_device_removed_node = NULL;
+       }
+
        if (unpaired_device_removed_node == NULL &&
                        generic_device_removed_set == TRUE) {
                bluez_adapter_unset_device_removed_cb(default_adapter);
@@ -2145,9 +2152,6 @@ int bt_device_unset_bond_destroyed_cb(void)
                generic_device_removed_set = FALSE;
        }
 
-       g_free(paired_device_removed_node);
-       paired_device_removed_node = NULL;
-
        return BT_SUCCESS;
 }