From ed7905d000f6d20374e3cde4d85281fb5bfdcdf9 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Thu, 18 May 2017 08:17:29 +0100 Subject: [PATCH] lib/remote: Add arguments to internal OstreeRemote constructor Add a name argument to the internal OstreeRemote constructor, since this member (and several derived from it) is non-nullable, and hence must always be set at construction time. This changes the only call sites of the constructor to use the new API, which is internal. Signed-off-by: Philip Withnall Closes: #875 Approved by: cgwalters --- src/libostree/ostree-remote-private.h | 2 +- src/libostree/ostree-remote.c | 14 +++++++++----- src/libostree/ostree-repo.c | 5 +---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/libostree/ostree-remote-private.h b/src/libostree/ostree-remote-private.h index 13f757ed..856cdaa6 100644 --- a/src/libostree/ostree-remote-private.h +++ b/src/libostree/ostree-remote-private.h @@ -46,7 +46,7 @@ struct OstreeRemote { }; G_GNUC_INTERNAL -OstreeRemote *ostree_remote_new (void); +OstreeRemote *ostree_remote_new (const gchar *name); G_GNUC_INTERNAL OstreeRemote *ostree_remote_new_from_keyfile (GKeyFile *keyfile, diff --git a/src/libostree/ostree-remote.c b/src/libostree/ostree-remote.c index f34fafa4..1932b22f 100644 --- a/src/libostree/ostree-remote.c +++ b/src/libostree/ostree-remote.c @@ -53,12 +53,17 @@ */ OstreeRemote * -ostree_remote_new (void) +ostree_remote_new (const gchar *name) { OstreeRemote *remote; + g_return_val_if_fail (name != NULL && *name != '\0', NULL); + remote = g_slice_new0 (OstreeRemote); remote->ref_count = 1; + remote->name = g_strdup (name); + remote->group = g_strdup_printf ("remote \"%s\"", name); + remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", name); remote->options = g_key_file_new (); return remote; @@ -70,6 +75,7 @@ ostree_remote_new_from_keyfile (GKeyFile *keyfile, { g_autoptr(GMatchInfo) match = NULL; OstreeRemote *remote; + g_autofree gchar *name = NULL; static gsize regex_initialized; static GRegex *regex; @@ -88,10 +94,8 @@ ostree_remote_new_from_keyfile (GKeyFile *keyfile, if (!g_regex_match (regex, group, 0, &match)) return NULL; - remote = ostree_remote_new (); - remote->name = g_match_info_fetch (match, 1); - remote->group = g_strdup (group); - remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", remote->name); + name = g_match_info_fetch (match, 1); + remote = ostree_remote_new (name); ot_keyfile_copy_group (keyfile, remote->options, group); diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index 2ef64ec0..b47bd382 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -882,10 +882,7 @@ impl_repo_remote_add (OstreeRepo *self, name, remote->file ? gs_file_get_path_cached (remote->file) : "(in config)"); } - remote = ostree_remote_new (); - remote->name = g_strdup (name); - remote->group = g_strdup_printf ("remote \"%s\"", name); - remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", name); + remote = ostree_remote_new (name); /* The OstreeRepo maintains its own internal system root path, * so we need to not only check if a "sysroot" argument was given