[gnome-software/gnome-3-30] Do not show duplicate lines in the 'OS Updates' entry
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/gnome-3-30] Do not show duplicate lines in the 'OS Updates' entry
- Date: Fri, 14 Sep 2018 14:29:04 +0000 (UTC)
commit a4dd14474db09ec76c2ffc2e6fc2e045588d184b
Author: Richard Hughes <richard hughsie com>
Date: Tue Sep 11 11:54:18 2018 +0100
Do not show duplicate lines in the 'OS Updates' entry
The generic packages never get an ID set, and so the deduplication never gets
done. In this case fall back to looking at the object addresses rather than
just blindly adding each one.
lib/gs-app-list.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/lib/gs-app-list.c b/lib/gs-app-list.c
index f30932ab..db3c7452 100644
--- a/lib/gs-app-list.c
+++ b/lib/gs-app-list.c
@@ -306,6 +306,16 @@ gs_app_list_check_for_duplicate (GsAppList *list, GsApp *app)
/* does not exist */
id = gs_app_get_unique_id (app);
+ if (id == NULL) {
+ for (guint i = 0; i < list->array->len; i++) {
+ GsApp *app_tmp = g_ptr_array_index (list->array, i);
+ if (app_tmp == app)
+ return FALSE;
+ }
+ /* not much else we can do... */
+ return TRUE;
+ }
+
app_old = g_hash_table_lookup (list->hash_by_id, id);
if (app_old == NULL)
return TRUE;
@@ -334,7 +344,11 @@ gs_app_list_add_safe (GsAppList *list, GsApp *app)
{
const gchar *id;
- /* if we're lazy-loading the ID then we can't filter for duplicates */
+ /* check for duplicate */
+ if (!gs_app_list_check_for_duplicate (list, app))
+ return;
+
+ /* if we're lazy-loading the ID then we can't use the ID hash */
id = gs_app_get_unique_id (app);
if (id == NULL) {
gs_app_list_maybe_watch_app (list, app);
@@ -342,10 +356,6 @@ gs_app_list_add_safe (GsAppList *list, GsApp *app)
return;
}
- /* check for duplicate */
- if (!gs_app_list_check_for_duplicate (list, app))
- return;
-
/* just use the ref */
gs_app_list_maybe_watch_app (list, app);
g_ptr_array_add (list->array, g_object_ref (app));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]