From 18626add023774ed482a9c3459f3e23dd00b2223 Mon Sep 17 00:00:00 2001 From: Umang Jain Date: Thu, 16 Jan 2020 19:14:56 +0530 Subject: [PATCH 1/2] dir: Return NULL instead of boolean when querying related refs The related refs are returned as GPtrArray, hence return NULL instead of FALSE on error paths. --- common/flatpak-dir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c index 1f8a0657..2b9bdd20 100644 --- a/common/flatpak-dir.c +++ b/common/flatpak-dir.c @@ -14198,7 +14198,7 @@ flatpak_dir_find_remote_related_for_metadata (FlatpakDir *self, state->remote_name, &url, error)) - return FALSE; + return NULL; if (*url == 0) return g_steal_pointer (&related); /* Empty url, silently disables updates */ @@ -14359,7 +14359,7 @@ flatpak_dir_find_remote_related (FlatpakDir *self, state->remote_name, &url, error)) - return FALSE; + return NULL; if (*url == 0) return g_steal_pointer (&related); /* Empty url, silently disables updates */ From 56787325edd802c1b5d01e5e5c0c46d86d234f62 Mon Sep 17 00:00:00 2001 From: Umang Jain Date: Thu, 16 Jan 2020 19:23:47 +0530 Subject: [PATCH 2/2] dir: Return empty array instead of NULL while querying related-refs Initialize the related-refs array with empty GPtrArray so that if the remote has 'url= ' (for e.g., in case of flatpak bundle's remotes), a empty array is returned instead of NULL. (NULL mostly implies a operation has failed and error is set) Also, this syncs the implementation of `if (*url == 0)` with that of flatak_dir_find_remote_related_for_metadata function. --- common/flatpak-dir.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c index 2b9bdd20..52b222ea 100644 --- a/common/flatpak-dir.c +++ b/common/flatpak-dir.c @@ -14348,7 +14348,7 @@ flatpak_dir_find_remote_related (FlatpakDir *self, const char *metadata = NULL; g_autoptr(GKeyFile) metakey = g_key_file_new (); g_auto(GStrv) parts = NULL; - g_autoptr(GPtrArray) related = NULL; + g_autoptr(GPtrArray) related = g_ptr_array_new_with_free_func ((GDestroyNotify) flatpak_related_free); g_autofree char *url = NULL; parts = flatpak_decompose_ref (ref, error); @@ -14368,9 +14368,10 @@ flatpak_dir_find_remote_related (FlatpakDir *self, NULL, NULL, &metadata, NULL, NULL) && g_key_file_load_from_data (metakey, metadata, -1, 0, NULL)) - related = flatpak_dir_find_remote_related_for_metadata (self, state, ref, metakey, cancellable, error); - else - related = g_ptr_array_new_with_free_func ((GDestroyNotify) flatpak_related_free); + { + g_ptr_array_unref (related); + related = flatpak_dir_find_remote_related_for_metadata (self, state, ref, metakey, cancellable, error); + } return g_steal_pointer (&related); }