Deinitialize callbacks after they are invoked.
authorSeonah Moon <seonah1.moon@samsung.com>
Wed, 1 Apr 2020 04:55:48 +0000 (13:55 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Wed, 1 Apr 2020 04:55:48 +0000 (13:55 +0900)
src/wifi-aware-data-path.c
src/wifi-aware-gdbus.c
src/wifi-aware-private.c

index f72fc5efca9f1edb84931a4cfb34e06b4bcd09fb..dd753f5b32fd254d74241113358764d54ad97023 100644 (file)
@@ -215,8 +215,11 @@ static void __data_path_invoke_callback(wifi_aware_data_path_h data_path, wifi_a
        RET_IF(data_path == NULL, "data path handle is NULL");
        wifi_aware_data_path_s *ndp = (wifi_aware_data_path_s *)data_path;
 
-       if (ndp->open_cb)
+       if (ndp->open_cb) {
                ndp->open_cb(data_path, error, ndp->open_cb_user_data);
+               ndp->open_cb = NULL;
+               ndp->open_cb_user_data = NULL;
+       }
 }
 
 static wifi_aware_error_e __parsing_data_path_confirmed_event(GVariant *parameters,
index 91044a97030ead35f4e6be81ce56d7f4292d04d9..78e5c31deec1ef57bd6c672f8f123994a7f917c1 100644 (file)
@@ -94,6 +94,7 @@ void wifi_aware_gdbus_deregister_signal(guint signal_id)
 {
        __WIFI_AWARE_FUNC_ENTER__;
        g_dbus_connection_signal_unsubscribe(gdbus_data.connection, signal_id);
+       __WIFI_AWARE_FUNC_EXIT__;
 }
 
 int wifi_aware_gdbus_init()
index 52a8a362767e3aca203457de1b52c8ad7b288c2c..0b47c54cc278b9994bf7b627fc80453e627b699f 100644 (file)
@@ -238,8 +238,11 @@ static void __enable_request_reply(GObject *src, GAsyncResult *res, gpointer use
                error = _wifi_aware_convert_nan_manager_error(nan_error);
        }
        
-       if (g_wifi_aware->enabled_cb)
+       if (g_wifi_aware->enabled_cb) {
                g_wifi_aware->enabled_cb(error, g_wifi_aware->enabled_cb_data);
+               g_wifi_aware->enabled_cb = NULL;
+               g_wifi_aware->enabled_cb_data = NULL;
+       }
 }
 
 static void __session_add_published_callback(wifi_aware_session_h session,
@@ -268,8 +271,11 @@ static void __wifi_aware_publish_invoke_callback(wifi_aware_session_h session,
        RET_IF(session == NULL, "Session is NULL");
        wifi_aware_session_s *handle = (wifi_aware_session_s *)session;
 
-       if (handle->published_cb)
+       if (handle->published_cb) {
                handle->published_cb(session, error, handle->published_cb_data);
+               handle->published_cb = NULL;
+               handle->published_cb_data = NULL;
+       }
 }
 
 static void __wifi_aware_discovered_cb(wifi_aware_session_h session, wifi_aware_peer_h peer,
@@ -363,8 +369,11 @@ static void __wifi_aware_subscribe_invoke_callback(wifi_aware_session_h session,
        RET_IF(session == NULL, "Session is NULL");
     wifi_aware_session_s *handle = (wifi_aware_session_s *)session;
 
-       if (handle->subscribed_cb)
+       if (handle->subscribed_cb) {
                handle->subscribed_cb(session, error, handle->subscribed_cb_data);
+               handle->subscribed_cb = NULL;
+               handle->subscribed_cb_data = NULL;
+       }
 }
 
 static void __subscribe_request_reply(GObject *src, GAsyncResult *res, gpointer user_data)
@@ -1141,8 +1150,11 @@ void __destroy_message_data(wifi_aware_message_s *message)
 
 static void __wifi_aware_followup_invoke_callback(wifi_aware_message_s *message, wifi_aware_error_e error)
 {
-       if (message && message->callback)
+       if (message && message->callback) {
                message->callback(message->session, error, message->user_data);
+               message->callback = NULL;
+               message->user_data = NULL;
+       }
 }
 
 static void __send_message_reply(GObject *src, GAsyncResult *res, gpointer user_data)