From 5fd830d3b09007226ff7dbbe183f9bcfa1c07ba5 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 4 Dec 2015 11:46:32 +0100 Subject: [PATCH] lib: Make getters for XdgAppRemote return copies of strings for options This makes it possible to handle the case when these options change over time. --- lib/xdg-app-remote.c | 20 +++++++------------- lib/xdg-app-remote.h | 4 ++-- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/lib/xdg-app-remote.c b/lib/xdg-app-remote.c index b3f1d49e..9ff97467 100644 --- a/lib/xdg-app-remote.c +++ b/lib/xdg-app-remote.c @@ -31,8 +31,6 @@ typedef struct _XdgAppRemotePrivate XdgAppRemotePrivate; struct _XdgAppRemotePrivate { char *name; - char *url; - char *title; XdgAppDir *dir; }; @@ -51,8 +49,6 @@ xdg_app_remote_finalize (GObject *object) XdgAppRemotePrivate *priv = xdg_app_remote_get_instance_private (self); g_free (priv->name); - g_free (priv->url); - g_free (priv->title); g_object_unref (priv->dir); G_OBJECT_CLASS (xdg_app_remote_parent_class)->finalize (object); @@ -132,27 +128,25 @@ xdg_app_remote_get_name (XdgAppRemote *self) return priv->name; } -const char * +char * xdg_app_remote_get_url (XdgAppRemote *self) { XdgAppRemotePrivate *priv = xdg_app_remote_get_instance_private (self); OstreeRepo *repo = xdg_app_dir_get_repo (priv->dir); + char *url; - if (priv->url == NULL) - ostree_repo_remote_get_url (repo, priv->name, &priv->url, NULL); + if (ostree_repo_remote_get_url (repo, priv->name, &url, NULL)) + return url; - return priv->url; + return NULL; } -const char * +char * xdg_app_remote_get_title (XdgAppRemote *self) { XdgAppRemotePrivate *priv = xdg_app_remote_get_instance_private (self); - if (priv->title == NULL) - priv->title = xdg_app_dir_get_remote_title (priv->dir, priv->name); - - return priv->title ? priv->title : priv->name; + return xdg_app_dir_get_remote_title (priv->dir, priv->name); } gboolean diff --git a/lib/xdg-app-remote.h b/lib/xdg-app-remote.h index 230e9d8c..510cab55 100644 --- a/lib/xdg-app-remote.h +++ b/lib/xdg-app-remote.h @@ -48,9 +48,9 @@ typedef struct { G_DEFINE_AUTOPTR_CLEANUP_FUNC(XdgAppRemote, g_object_unremote) #endif -XDG_APP_EXTERN const char * xdg_app_remote_get_url (XdgAppRemote *self); XDG_APP_EXTERN const char * xdg_app_remote_get_name (XdgAppRemote *self); -XDG_APP_EXTERN const char * xdg_app_remote_get_title (XdgAppRemote *self); +XDG_APP_EXTERN char * xdg_app_remote_get_url (XdgAppRemote *self); +XDG_APP_EXTERN char * xdg_app_remote_get_title (XdgAppRemote *self); XDG_APP_EXTERN gboolean xdg_app_remote_get_gpg_verify (XdgAppRemote *self); XDG_APP_EXTERN gboolean xdg_app_remote_get_noenumerate (XdgAppRemote *self);