[gnome-software/wip/hughsie/duplicate-reviews: 2/3] odrs: Do not request duplicate reviews
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/wip/hughsie/duplicate-reviews: 2/3] odrs: Do not request duplicate reviews
- Date: Tue, 23 Apr 2019 10:33:50 +0000 (UTC)
commit 7d331f871a550b49b6e19469fb5b036de5993ae5
Author: Richard Hughes <richard hughsie com>
Date: Tue Apr 23 11:28:08 2019 +0100
odrs: Do not request duplicate reviews
Never add the same compatibility ID more than once. I guess another bug is that
the ODRS does not dedupe these as well.
plugins/odrs/gs-plugin-odrs.c | 6 ++++++
1 file changed, 6 insertions(+)
---
diff --git a/plugins/odrs/gs-plugin-odrs.c b/plugins/odrs/gs-plugin-odrs.c
index 32c0c266..efaf9596 100644
--- a/plugins/odrs/gs-plugin-odrs.c
+++ b/plugins/odrs/gs-plugin-odrs.c
@@ -537,14 +537,20 @@ static JsonNode *
gs_plugin_odrs_get_compat_ids (GsApp *app)
{
GPtrArray *provides = gs_app_get_provides (app);
+ g_autoptr(GHashTable) ids = NULL;
g_autoptr(JsonArray) json_array = json_array_new ();
g_autoptr(JsonNode) json_node = json_node_new (JSON_NODE_ARRAY);
+
+ ids = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
for (guint i = 0; i < provides->len; i++) {
AsProvide *provide = g_ptr_array_index (provides, i);
if (as_provide_get_kind (provide) != AS_PROVIDE_KIND_ID)
continue;
if (as_provide_get_value (provide) == NULL)
continue;
+ if (g_hash_table_lookup (ids, as_provide_get_value (provide)) != NULL)
+ continue;
+ g_hash_table_add (ids, g_strdup (as_provide_get_value (provide)));
json_array_add_string_element (json_array, as_provide_get_value (provide));
}
if (json_array_get_length (json_array) == 0)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]