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);
}
{
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, ¶m_uid);
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);