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.
This commit is contained in:
Alexander Larsson
2015-12-04 11:46:32 +01:00
parent 1ba476bcbe
commit 5fd830d3b0
2 changed files with 9 additions and 15 deletions

View File

@@ -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

View File

@@ -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);