Remove unnecessary memory allocation function 54/285354/2
authorInHong Han <inhong1.han@samsung.com>
Fri, 9 Dec 2022 08:00:41 +0000 (17:00 +0900)
committerInHong Han <inhong1.han@samsung.com>
Fri, 9 Dec 2022 09:15:10 +0000 (18:15 +0900)
Change-Id: I26800d69df15e3df89000fe287ea907a36dc09c1

server/stickerd_data_manager.c
server/stickerd_dbus.c

index 66915b695a8b6334e0aaf0a5a595ce8a0acb3a36..7ab5a7f98e80db3fc29d7287cfb9fe238bdb2c89 100644 (file)
@@ -60,7 +60,7 @@ static void _terminate_daemon()
     LOGD("Terminate sticker daemon");
     g_hash_table_destroy(_monitoring_hash);
     _monitoring_hash = NULL;
-    g_list_free_full(consumer_list, free);
+    g_list_free(consumer_list);
     consumer_list = NULL;
     g_main_loop_quit(main_loop);
 }
@@ -110,8 +110,10 @@ static void _on_name_vanished(GDBusConnection *connection,
             delete_monitoring_list(&_monitoring_hash, info->bus_name, info->watcher_id);
         }
 
-        if (g_list_find(consumer_list, info->bus_name))
-            consumer_list = g_list_remove(consumer_list, info->bus_name);
+        GList *node = g_list_find_custom(consumer_list, info->bus_name, (GCompareFunc) strcmp);
+        if (node) {
+            consumer_list = g_list_delete_link(consumer_list, node);
+        }
 
         if (info->bus_name)
             free(info->bus_name);
@@ -131,9 +133,6 @@ static void _stickerd_client_dbus_method_call_handler(GDBusConnection *conn, con
     if (_monitoring_hash == NULL)
         _monitoring_hash = g_hash_table_new(g_direct_hash, g_direct_equal);
 
-    if (consumer_list == NULL)
-        consumer_list = g_list_alloc();
-
     GVariant *reply_body = NULL;
     int ret = STICKERD_SERVER_ERROR_OPERATION_FAILED;
 
index d125daf4c6853267f39c5d45dd7251be74d64848..96d22f0c15714c8ee5e80da1aa88540fe7636dd6 100644 (file)
@@ -84,7 +84,7 @@ int stickerd_server_register(GVariant *parameters, GVariant **reply_body, const
     }
 
     if ((CLIENT_LIB)c_lib == STICKER_CLIENT_LIB_CONSUMER)
-        *consumer_list = g_list_append(*consumer_list, strdup((const char *)sender));
+        *consumer_list = g_list_append(*consumer_list, g_strdup((sender)));
 
     LOGD("sender: %s, watcher: %d", sender, m_info->watcher_id);
     monitoring_list = g_list_append(monitoring_list, list_bus_name);
@@ -117,8 +117,11 @@ int stickerd_server_unregister(GVariant *parameters, GVariant **reply_body, cons
 
     g_variant_get(parameters, "(ii)", &c_lib, &watcher_id);
 
-    if ((CLIENT_LIB)c_lib == STICKER_CLIENT_LIB_CONSUMER)
-        *consumer_list = g_list_remove(*consumer_list, sender);
+    if ((CLIENT_LIB)c_lib == STICKER_CLIENT_LIB_CONSUMER) {
+        GList *node = g_list_find_custom(*consumer_list, sender, (GCompareFunc) strcmp);
+        if (node)
+            *consumer_list = g_list_delete_link(*consumer_list, node);
+    }
 
     if (g_hash_table_lookup(*monitoring_hash, GUINT_TO_POINTER(watcher_id)) != NULL) {
         g_bus_unwatch_name(watcher_id);