From b9eaa46bb0827d89a4eba21aef120bd1012e09f5 Mon Sep 17 00:00:00 2001 From: DoHyun Pyun Date: Tue, 6 Dec 2016 11:01:28 +0900 Subject: [PATCH] Fix the bug for dbus connection and proxy deinitialization Change-Id: Id81a3924fb85697bf2056a6c1403f9e3ff9275ca Signed-off-by: DoHyun Pyun --- bt-api/bt-common.c | 3 +++ bt-api/include/bt-request-sender.h | 3 +++ bt-service/bt-service-adapter-le.c | 8 ++------ bt-service/bt-service-event-receiver.c | 4 ---- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/bt-api/bt-common.c b/bt-api/bt-common.c index 1fc5bcf..d7a9e49 100644 --- a/bt-api/bt-common.c +++ b/bt-api/bt-common.c @@ -1784,10 +1784,13 @@ BT_EXPORT_API int bluetooth_unregister_callback(void) _bt_set_user_data(BT_COMMON, NULL, NULL); + _bt_gdbus_deinit_proxys(); + if (system_gconn) { g_object_unref(system_gconn); system_gconn = NULL; } + return BLUETOOTH_ERROR_NONE; } diff --git a/bt-api/include/bt-request-sender.h b/bt-api/include/bt-request-sender.h index df9c7d8..bf110e5 100644 --- a/bt-api/include/bt-request-sender.h +++ b/bt-api/include/bt-request-sender.h @@ -69,6 +69,9 @@ int _bt_async_send_request(int service_type, int service_function, } \ ) +void _bt_gdbus_deinit_proxys(void); + + #ifdef __cplusplus } #endif diff --git a/bt-service/bt-service-adapter-le.c b/bt-service/bt-service-adapter-le.c index b27d208..2afe345 100644 --- a/bt-service/bt-service-adapter-le.c +++ b/bt-service/bt-service-adapter-le.c @@ -140,7 +140,7 @@ void _bt_clear_gatt_client_senders(void) gatt_client_senders = NULL; } } -#if 0 + static void __bt_send_foreach_event(gpointer data, gpointer user_data) { char *sender = data; @@ -149,15 +149,11 @@ static void __bt_send_foreach_event(gpointer data, gpointer user_data) _bt_send_event_to_dest(sender, BT_DEVICE_EVENT, BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED, param); } -#endif + void _bt_send_char_value_changed_event(void *param) { -#if 0 g_slist_foreach(gatt_client_senders, __bt_send_foreach_event, (gpointer)param); -#else - _bt_send_event(BT_DEVICE_EVENT, BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED, param); -#endif } void __bt_free_le_adv_slot(void) diff --git a/bt-service/bt-service-event-receiver.c b/bt-service/bt-service-event-receiver.c index ced268a..374585d 100644 --- a/bt-service/bt-service-event-receiver.c +++ b/bt-service/bt-service-event-receiver.c @@ -534,15 +534,11 @@ void _bt_handle_adapter_event(GVariant *msg, const char *member) param = g_variant_new("(ii)", result, adv_handle); -#if 0 const char *sender; sender = _bt_get_adv_slot_owner(slot_id); _bt_send_event_to_dest(sender, BT_ADAPTER_EVENT, event, param); -#else - _bt_send_event(BT_ADAPTER_EVENT, event, param); -#endif if (event == BLUETOOTH_EVENT_ADVERTISING_STOPPED) _bt_unregister_adv_slot_owner(slot_id); -- 2.7.4