Change parameter to struct from glist 08/198508/2
authormk5004.lee <mk5004.lee@samsung.com>
Fri, 25 Jan 2019 05:18:40 +0000 (14:18 +0900)
committermk5004.lee <mk5004.lee@samsung.com>
Mon, 28 Jan 2019 01:32:33 +0000 (10:32 +0900)
- use notification_deleted_list_info_s
  for notification_noti_delete_by_display_applist()

Change-Id: I8da48f423b3b7c8771479392ab265f475ca00391
Signed-off-by: mk5004.lee <mk5004.lee@samsung.com>
src/notification_service.c

index b7bfc3f..aeebd8a 100755 (executable)
@@ -1548,16 +1548,15 @@ int notification_del_noti_multiple(GVariant *parameters, GVariant **reply_body,
        return ret;
 }
 
-static void __free_deleted_list_info(gpointer data)
+static void __free_deleted_list_info(notification_deleted_list_info_s *info,
+                       int count)
 {
-       notification_deleted_list_info_s *info =
-                               (notification_deleted_list_info_s *)data;
-
-       if (info == NULL)
-               return;
+       int i;
 
-       if (info->app_id)
-               free(info->app_id);
+       for (i = 0; i < count; i++) {
+               if ((info + i)->app_id != NULL)
+                       free((info + i)->app_id);
+       }
 
        free(info);
 }
@@ -1567,13 +1566,12 @@ int notification_del_noti_by_display_applist(GVariant *parameters,
 {
        int ret;
        int display_applist = 0;
-       int deleted_num;
-       GList *deleted_list = NULL;
-       GList *iter_list = NULL;
+       int deleted_num = 0;
+       int i;
        GVariant *deleted_noti_list;
        GVariantBuilder *builder;
        uid_t param_uid;
-       notification_deleted_list_info_s *info = NULL;
+       notification_deleted_list_info_s *deleted_list = NULL;
 
        g_variant_get(parameters, "(ii)", &display_applist, &param_uid);
 
@@ -1586,22 +1584,23 @@ int notification_del_noti_by_display_applist(GVariant *parameters,
        if (ret != NOTIFICATION_ERROR_NONE) {
                ERR("Failed to delete notifications [%d]", ret);
                if (deleted_list != NULL)
-                       g_list_free_full(deleted_list, __free_deleted_list_info);
+                       __free_deleted_list_info(deleted_list, deleted_num);
                return ret;
        }
 
        if (deleted_num > 0) {
                builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)"));
 
-               iter_list = g_list_first(deleted_list);
-               while(iter_list) {
-                       info = iter_list->data;
-                       g_variant_builder_add(builder, "(i)", info->priv_id);
-                       notification_remove_private_sharing(info->app_id, info->priv_id, param_uid);
-                       __delete_sender_info(info->priv_id);
-                       iter_list = g_list_next(iter_list);
+               for (i = 0; i < deleted_num; i++) {
+                       g_variant_builder_add(builder, "(i)",
+                                       (deleted_list +i)->priv_id);
+                       notification_remove_private_sharing(
+                                       (deleted_list +i)->app_id,
+                                       (deleted_list +i)->priv_id,
+                                       param_uid);
+                       __delete_sender_info((deleted_list +i)->priv_id);
                }
-               g_list_free_full(deleted_list, __free_deleted_list_info);
+               __free_deleted_list_info(deleted_list, deleted_num);
 
                deleted_noti_list = g_variant_new("(a(i)ii)", builder,
                                                deleted_num, param_uid);