[gnome-software] GsApp: Use gs_app_get_instance_private and remove the priv pointer



commit b821b4a8ba90283f0596dda060b1d7787ed56d4a
Author: Kalev Lember <kalevlember gmail com>
Date:   Mon May 11 14:43:16 2015 +0200

    GsApp: Use gs_app_get_instance_private and remove the priv pointer
    
    This is slightly safer since gs_app_get_instance_private() doesn't
    dereference the app pointer, making it possible to write code such as:
    
    GsAppPrivate *priv = gs_app_get_instance_private (app);
    g_return_if_fail (GS_IS_APP (app));
    
    ... without having to fear that we dereference app before the
    g_return_if_fail assertion.

 src/gs-app.c |  385 +++++++++++++++++++++++++++++-----------------------------
 src/gs-app.h |    1 -
 2 files changed, 194 insertions(+), 192 deletions(-)
---
diff --git a/src/gs-app.c b/src/gs-app.c
index c2abc91..8a7bc11 100644
--- a/src/gs-app.c
+++ b/src/gs-app.c
@@ -114,6 +114,8 @@ enum {
        PROP_LAST
 };
 
+#define APP_PRIV(app) ((GsAppPrivate *) gs_app_get_instance_private ((GsApp *) (app)))
+
 G_DEFINE_TYPE_WITH_PRIVATE (GsApp, gs_app, G_TYPE_OBJECT)
 
 /**
@@ -165,7 +167,7 @@ gs_app_to_string (GsApp *app)
        GList *keys;
        GList *l;
        GString *str;
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
        const gchar *tmp;
        guint i;
 
@@ -352,7 +354,7 @@ const gchar *
 gs_app_get_id (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->id;
+       return APP_PRIV (app)->id;
 }
 
 /**
@@ -362,8 +364,8 @@ void
 gs_app_set_id (GsApp *app, const gchar *id)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_free (app->priv->id);
-       app->priv->id = g_strdup (id);
+       g_free (APP_PRIV (app)->id);
+       APP_PRIV (app)->id = g_strdup (id);
 }
 
 /**
@@ -373,7 +375,7 @@ AsAppState
 gs_app_get_state (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), AS_APP_STATE_UNKNOWN);
-       return app->priv->state;
+       return APP_PRIV (app)->state;
 }
 
 /**
@@ -383,7 +385,7 @@ static gboolean
 gs_app_set_state_internal (GsApp *app, AsAppState state)
 {
        gboolean state_change_ok = FALSE;
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
 
        if (priv->state == state)
                return FALSE;
@@ -471,7 +473,7 @@ gs_app_set_state_internal (GsApp *app, AsAppState state)
        if (state == AS_APP_STATE_UNKNOWN ||
            state == AS_APP_STATE_AVAILABLE_LOCAL ||
            state == AS_APP_STATE_AVAILABLE)
-               app->priv->install_date = 0;
+               APP_PRIV (app)->install_date = 0;
 
        return TRUE;
 }
@@ -509,7 +511,7 @@ GsAppKind
 gs_app_get_kind (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), GS_APP_KIND_UNKNOWN);
-       return app->priv->kind;
+       return APP_PRIV (app)->kind;
 }
 
 /**
@@ -526,7 +528,7 @@ void
 gs_app_set_kind (GsApp *app, GsAppKind kind)
 {
        gboolean state_change_ok = FALSE;
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
 
        g_return_if_fail (GS_IS_APP (app));
        if (priv->kind == kind)
@@ -586,7 +588,7 @@ AsIdKind
 gs_app_get_id_kind (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), GS_APP_KIND_UNKNOWN);
-       return app->priv->id_kind;
+       return APP_PRIV (app)->id_kind;
 }
 
 /**
@@ -596,7 +598,7 @@ void
 gs_app_set_id_kind (GsApp *app, AsIdKind id_kind)
 {
        g_return_if_fail (GS_IS_APP (app));
-       app->priv->id_kind = id_kind;
+       APP_PRIV (app)->id_kind = id_kind;
 }
 
 /**
@@ -606,7 +608,7 @@ const gchar *
 gs_app_get_name (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->name;
+       return APP_PRIV (app)->name;
 }
 
 /**
@@ -621,12 +623,12 @@ gs_app_set_name (GsApp *app, GsAppQuality quality, const gchar *name)
        g_return_if_fail (GS_IS_APP (app));
 
        /* only save this if the data is sufficiently high quality */
-       if (quality <= app->priv->name_quality)
+       if (quality <= APP_PRIV (app)->name_quality)
                return;
-       app->priv->name_quality = quality;
+       APP_PRIV (app)->name_quality = quality;
 
-       g_free (app->priv->name);
-       app->priv->name = g_strdup (name);
+       g_free (APP_PRIV (app)->name);
+       APP_PRIV (app)->name = g_strdup (name);
 }
 
 /**
@@ -636,9 +638,9 @@ const gchar *
 gs_app_get_source_default (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       if (app->priv->sources->len == 0)
+       if (APP_PRIV (app)->sources->len == 0)
                return NULL;
-       return g_ptr_array_index (app->priv->sources, 0);
+       return g_ptr_array_index (APP_PRIV (app)->sources, 0);
 }
 
 /**
@@ -653,12 +655,12 @@ gs_app_add_source (GsApp *app, const gchar *source)
        g_return_if_fail (GS_IS_APP (app));
 
        /* check source doesn't already exist */
-       for (i = 0; i < app->priv->sources->len; i++) {
-               tmp = g_ptr_array_index (app->priv->sources, i);
+       for (i = 0; i < APP_PRIV (app)->sources->len; i++) {
+               tmp = g_ptr_array_index (APP_PRIV (app)->sources, i);
                if (g_strcmp0 (tmp, source) == 0)
                        return;
        }
-       g_ptr_array_add (app->priv->sources, g_strdup (source));
+       g_ptr_array_add (APP_PRIV (app)->sources, g_strdup (source));
 }
 
 /**
@@ -668,7 +670,7 @@ GPtrArray *
 gs_app_get_sources (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->sources;
+       return APP_PRIV (app)->sources;
 }
 
 /**
@@ -684,9 +686,9 @@ void
 gs_app_set_sources (GsApp *app, GPtrArray *sources)
 {
        g_return_if_fail (GS_IS_APP (app));
-       if (app->priv->sources != NULL)
-               g_ptr_array_unref (app->priv->sources);
-       app->priv->sources = g_ptr_array_ref (sources);
+       if (APP_PRIV (app)->sources != NULL)
+               g_ptr_array_unref (APP_PRIV (app)->sources);
+       APP_PRIV (app)->sources = g_ptr_array_ref (sources);
 }
 
 /**
@@ -696,9 +698,9 @@ const gchar *
 gs_app_get_source_id_default (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       if (app->priv->source_ids->len == 0)
+       if (APP_PRIV (app)->source_ids->len == 0)
                return NULL;
-       return g_ptr_array_index (app->priv->source_ids, 0);
+       return g_ptr_array_index (APP_PRIV (app)->source_ids, 0);
 }
 
 /**
@@ -708,7 +710,7 @@ GPtrArray *
 gs_app_get_source_ids (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->source_ids;
+       return APP_PRIV (app)->source_ids;
 }
 
 /**
@@ -718,7 +720,7 @@ void
 gs_app_clear_source_ids (GsApp *app)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_ptr_array_set_size (app->priv->source_ids, 0);
+       g_ptr_array_set_size (APP_PRIV (app)->source_ids, 0);
 }
 
 /**
@@ -733,9 +735,9 @@ void
 gs_app_set_source_ids (GsApp *app, GPtrArray *source_ids)
 {
        g_return_if_fail (GS_IS_APP (app));
-       if (app->priv->source_ids != NULL)
-               g_ptr_array_unref (app->priv->source_ids);
-       app->priv->source_ids = g_ptr_array_ref (source_ids);
+       if (APP_PRIV (app)->source_ids != NULL)
+               g_ptr_array_unref (APP_PRIV (app)->source_ids);
+       APP_PRIV (app)->source_ids = g_ptr_array_ref (source_ids);
 }
 
 /**
@@ -750,12 +752,12 @@ gs_app_add_source_id (GsApp *app, const gchar *source_id)
        g_return_if_fail (GS_IS_APP (app));
 
        /* only add if not already present */
-       for (i = 0; i < app->priv->source_ids->len; i++) {
-               tmp = g_ptr_array_index (app->priv->source_ids, i);
+       for (i = 0; i < APP_PRIV (app)->source_ids->len; i++) {
+               tmp = g_ptr_array_index (APP_PRIV (app)->source_ids, i);
                if (g_strcmp0 (tmp, source_id) == 0)
                        return;
        }
-       g_ptr_array_add (app->priv->source_ids, g_strdup (source_id));
+       g_ptr_array_add (APP_PRIV (app)->source_ids, g_strdup (source_id));
 }
 
 /**
@@ -765,7 +767,7 @@ const gchar *
 gs_app_get_project_group (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->project_group;
+       return APP_PRIV (app)->project_group;
 }
 
 /**
@@ -777,8 +779,8 @@ void
 gs_app_set_project_group (GsApp *app, const gchar *project_group)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_free (app->priv->project_group);
-       app->priv->project_group = g_strdup (project_group);
+       g_free (APP_PRIV (app)->project_group);
+       APP_PRIV (app)->project_group = g_strdup (project_group);
 }
 
 /**
@@ -805,16 +807,16 @@ gs_app_get_pixbuf (GsApp *app)
        g_return_val_if_fail (GS_IS_APP (app), NULL);
 
        /* has an icon */
-       if (app->priv->pixbuf == NULL &&
-           app->priv->icon != NULL &&
-           as_icon_get_kind (app->priv->icon) == AS_ICON_KIND_STOCK) {
-               app->priv->pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
-                                                             as_icon_get_name (app->priv->icon), 64,
+       if (APP_PRIV (app)->pixbuf == NULL &&
+           APP_PRIV (app)->icon != NULL &&
+           as_icon_get_kind (APP_PRIV (app)->icon) == AS_ICON_KIND_STOCK) {
+               APP_PRIV (app)->pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+                                                             as_icon_get_name (APP_PRIV (app)->icon), 64,
                                                              GTK_ICON_LOOKUP_USE_BUILTIN |
                                                              GTK_ICON_LOOKUP_FORCE_SIZE,
                                                              NULL);
 
-       } else if (app->priv->pixbuf == NULL && gs_app_get_state (app) == AS_APP_STATE_AVAILABLE_LOCAL) {
+       } else if (APP_PRIV (app)->pixbuf == NULL && gs_app_get_state (app) == AS_APP_STATE_AVAILABLE_LOCAL) {
                const gchar *icon_name;
                if (gs_app_get_kind (app) == GS_APP_KIND_SOURCE)
                        icon_name = "x-package-repository";
@@ -822,27 +824,27 @@ gs_app_get_pixbuf (GsApp *app)
                        icon_name = "application-x-addon";
                else
                        icon_name = "application-x-executable";
-               app->priv->pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+               APP_PRIV (app)->pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                              icon_name, 96,
                                                              GTK_ICON_LOOKUP_USE_BUILTIN |
                                                              GTK_ICON_LOOKUP_FORCE_SIZE,
                                                              NULL);
 
-       } else if (app->priv->pixbuf == NULL && gs_app_get_kind (app) == GS_APP_KIND_PACKAGE) {
-               app->priv->pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+       } else if (APP_PRIV (app)->pixbuf == NULL && gs_app_get_kind (app) == GS_APP_KIND_PACKAGE) {
+               APP_PRIV (app)->pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                              "application-x-addon", 64,
                                                              GTK_ICON_LOOKUP_USE_BUILTIN |
                                                              GTK_ICON_LOOKUP_FORCE_SIZE,
                                                              NULL);
-       } else if (app->priv->pixbuf == NULL && gs_app_get_kind (app) == GS_APP_KIND_MISSING) {
-               app->priv->pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+       } else if (APP_PRIV (app)->pixbuf == NULL && gs_app_get_kind (app) == GS_APP_KIND_MISSING) {
+               APP_PRIV (app)->pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                              "dialog-question-symbolic", 16,
                                                              GTK_ICON_LOOKUP_USE_BUILTIN |
                                                              GTK_ICON_LOOKUP_FORCE_SIZE,
                                                              NULL);
        }
 
-       return app->priv->pixbuf;
+       return APP_PRIV (app)->pixbuf;
 }
 
 /**
@@ -852,7 +854,7 @@ AsIcon *
 gs_app_get_icon (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->icon;
+       return APP_PRIV (app)->icon;
 }
 
 /**
@@ -864,9 +866,9 @@ gs_app_set_icon (GsApp *app, AsIcon *icon)
        g_return_if_fail (GS_IS_APP (app));
 
        /* save icon */
-       g_clear_object (&app->priv->icon);
+       g_clear_object (&APP_PRIV (app)->icon);
        if (icon != NULL)
-               app->priv->icon = g_object_ref (icon);
+               APP_PRIV (app)->icon = g_object_ref (icon);
 }
 
 static GtkIconTheme *icon_theme_singleton;
@@ -913,7 +915,7 @@ gs_app_load_icon (GsApp *app, gint scale, GError **error)
        _cleanup_object_unref_ GdkPixbuf *pixbuf = NULL;
 
        g_return_val_if_fail (GS_IS_APP (app), FALSE);
-       g_return_val_if_fail (app->priv->icon != NULL, FALSE);
+       g_return_val_if_fail (APP_PRIV (app)->icon != NULL, FALSE);
 
        /* either load from the theme or from a file */
        icon = gs_app_get_icon (app);
@@ -965,9 +967,9 @@ gs_app_set_pixbuf (GsApp *app, GdkPixbuf *pixbuf)
 {
        g_return_if_fail (GS_IS_APP (app));
        g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
-       if (app->priv->pixbuf != NULL)
-               g_object_unref (app->priv->pixbuf);
-       app->priv->pixbuf = g_object_ref (pixbuf);
+       if (APP_PRIV (app)->pixbuf != NULL)
+               g_object_unref (APP_PRIV (app)->pixbuf);
+       APP_PRIV (app)->pixbuf = g_object_ref (pixbuf);
 }
 
 /**
@@ -977,7 +979,7 @@ GdkPixbuf *
 gs_app_get_featured_pixbuf (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->featured_pixbuf;
+       return APP_PRIV (app)->featured_pixbuf;
 }
 
 /**
@@ -987,8 +989,8 @@ void
 gs_app_set_featured_pixbuf (GsApp *app, GdkPixbuf *pixbuf)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_return_if_fail (app->priv->featured_pixbuf == NULL);
-       app->priv->featured_pixbuf = g_object_ref (pixbuf);
+       g_return_if_fail (APP_PRIV (app)->featured_pixbuf == NULL);
+       APP_PRIV (app)->featured_pixbuf = g_object_ref (pixbuf);
 }
 
 typedef enum {
@@ -1058,7 +1060,7 @@ out:
 static void
 gs_app_ui_versions_invalidate (GsApp *app)
 {
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
        g_free (priv->version_ui);
        g_free (priv->update_version_ui);
        priv->version_ui = NULL;
@@ -1071,7 +1073,7 @@ gs_app_ui_versions_invalidate (GsApp *app)
 static void
 gs_app_ui_versions_populate (GsApp *app)
 {
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
        guint i;
        guint64 flags[] = { GS_APP_VERSION_FIXUP_RELEASE |
                            GS_APP_VERSION_FIXUP_DISTRO_SUFFIX |
@@ -1104,7 +1106,7 @@ const gchar *
 gs_app_get_version (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->version;
+       return APP_PRIV (app)->version;
 }
 
 /**
@@ -1116,12 +1118,12 @@ gs_app_get_version_ui (GsApp *app)
        g_return_val_if_fail (GS_IS_APP (app), NULL);
 
        /* work out the two version numbers */
-       if (app->priv->version != NULL &&
-           app->priv->version_ui == NULL) {
+       if (APP_PRIV (app)->version != NULL &&
+           APP_PRIV (app)->version_ui == NULL) {
                gs_app_ui_versions_populate (app);
        }
 
-       return app->priv->version_ui;
+       return APP_PRIV (app)->version_ui;
 }
 
 /**
@@ -1136,8 +1138,8 @@ void
 gs_app_set_version (GsApp *app, const gchar *version)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_free (app->priv->version);
-       app->priv->version = g_strdup (version);
+       g_free (APP_PRIV (app)->version);
+       APP_PRIV (app)->version = g_strdup (version);
        gs_app_ui_versions_invalidate (app);
        gs_app_queue_notify (app, "version");
 }
@@ -1149,7 +1151,7 @@ const gchar *
 gs_app_get_summary (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->summary;
+       return APP_PRIV (app)->summary;
 }
 
 /**
@@ -1164,12 +1166,12 @@ gs_app_set_summary (GsApp *app, GsAppQuality quality, const gchar *summary)
        g_return_if_fail (GS_IS_APP (app));
 
        /* only save this if the data is sufficiently high quality */
-       if (quality <= app->priv->summary_quality)
+       if (quality <= APP_PRIV (app)->summary_quality)
                return;
-       app->priv->summary_quality = quality;
+       APP_PRIV (app)->summary_quality = quality;
 
-       g_free (app->priv->summary);
-       app->priv->summary = g_strdup (summary);
+       g_free (APP_PRIV (app)->summary);
+       APP_PRIV (app)->summary = g_strdup (summary);
 }
 
 /**
@@ -1179,7 +1181,7 @@ const gchar *
 gs_app_get_description (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->description;
+       return APP_PRIV (app)->description;
 }
 
 /**
@@ -1194,12 +1196,12 @@ gs_app_set_description (GsApp *app, GsAppQuality quality, const gchar *descripti
        g_return_if_fail (GS_IS_APP (app));
 
        /* only save this if the data is sufficiently high quality */
-       if (quality <= app->priv->description_quality)
+       if (quality <= APP_PRIV (app)->description_quality)
                return;
-       app->priv->description_quality = quality;
+       APP_PRIV (app)->description_quality = quality;
 
-       g_free (app->priv->description);
-       app->priv->description = g_strdup (description);
+       g_free (APP_PRIV (app)->description);
+       APP_PRIV (app)->description = g_strdup (description);
 }
 
 /**
@@ -1209,7 +1211,7 @@ const gchar *
 gs_app_get_url (GsApp *app, AsUrlKind kind)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return g_hash_table_lookup (app->priv->urls, as_url_kind_to_string (kind));
+       return g_hash_table_lookup (APP_PRIV (app)->urls, as_url_kind_to_string (kind));
 }
 
 /**
@@ -1219,7 +1221,7 @@ void
 gs_app_set_url (GsApp *app, AsUrlKind kind, const gchar *url)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_hash_table_insert (app->priv->urls,
+       g_hash_table_insert (APP_PRIV (app)->urls,
                             g_strdup (as_url_kind_to_string (kind)),
                             g_strdup (url));
 }
@@ -1231,7 +1233,7 @@ const gchar *
 gs_app_get_licence (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->licence;
+       return APP_PRIV (app)->licence;
 }
 
 /**
@@ -1295,8 +1297,8 @@ gs_app_set_licence (GsApp *app, const gchar *licence)
                g_string_append (urld, tokens[i]);
        }
 
-       g_free (app->priv->licence);
-       app->priv->licence = g_string_free (urld, FALSE);
+       g_free (APP_PRIV (app)->licence);
+       APP_PRIV (app)->licence = g_string_free (urld, FALSE);
 }
 
 /**
@@ -1306,7 +1308,7 @@ const gchar *
 gs_app_get_summary_missing (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->summary_missing;
+       return APP_PRIV (app)->summary_missing;
 }
 
 /**
@@ -1316,8 +1318,8 @@ void
 gs_app_set_summary_missing (GsApp *app, const gchar *summary_missing)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_free (app->priv->summary_missing);
-       app->priv->summary_missing = g_strdup (summary_missing);
+       g_free (APP_PRIV (app)->summary_missing);
+       APP_PRIV (app)->summary_missing = g_strdup (summary_missing);
 }
 
 /**
@@ -1327,7 +1329,7 @@ const gchar *
 gs_app_get_menu_path (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->menu_path;
+       return APP_PRIV (app)->menu_path;
 }
 
 /**
@@ -1337,8 +1339,8 @@ void
 gs_app_set_menu_path (GsApp *app, const gchar *menu_path)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_free (app->priv->menu_path);
-       app->priv->menu_path = g_strdup (menu_path);
+       g_free (APP_PRIV (app)->menu_path);
+       APP_PRIV (app)->menu_path = g_strdup (menu_path);
 }
 
 /**
@@ -1348,7 +1350,7 @@ const gchar *
 gs_app_get_origin (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->origin;
+       return APP_PRIV (app)->origin;
 }
 
 /**
@@ -1361,8 +1363,8 @@ void
 gs_app_set_origin (GsApp *app, const gchar *origin)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_free (app->priv->origin);
-       app->priv->origin = g_strdup (origin);
+       g_free (APP_PRIV (app)->origin);
+       APP_PRIV (app)->origin = g_strdup (origin);
 }
 
 /**
@@ -1372,7 +1374,7 @@ void
 gs_app_add_screenshot (GsApp *app, AsScreenshot *screenshot)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_ptr_array_add (app->priv->screenshots, g_object_ref (screenshot));
+       g_ptr_array_add (APP_PRIV (app)->screenshots, g_object_ref (screenshot));
 }
 
 /**
@@ -1382,7 +1384,7 @@ GPtrArray *
 gs_app_get_screenshots (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->screenshots;
+       return APP_PRIV (app)->screenshots;
 }
 
 /**
@@ -1392,7 +1394,7 @@ const gchar *
 gs_app_get_update_version (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->update_version;
+       return APP_PRIV (app)->update_version;
 }
 
 /**
@@ -1404,12 +1406,12 @@ gs_app_get_update_version_ui (GsApp *app)
        g_return_val_if_fail (GS_IS_APP (app), NULL);
 
        /* work out the two version numbers */
-       if (app->priv->update_version != NULL &&
-           app->priv->update_version_ui == NULL) {
+       if (APP_PRIV (app)->update_version != NULL &&
+           APP_PRIV (app)->update_version_ui == NULL) {
                gs_app_ui_versions_populate (app);
        }
 
-       return app->priv->update_version_ui;
+       return APP_PRIV (app)->update_version_ui;
 }
 
 /**
@@ -1418,8 +1420,8 @@ gs_app_get_update_version_ui (GsApp *app)
 static void
 gs_app_set_update_version_internal (GsApp *app, const gchar *update_version)
 {
-       g_free (app->priv->update_version);
-       app->priv->update_version = g_strdup (update_version);
+       g_free (APP_PRIV (app)->update_version);
+       APP_PRIV (app)->update_version = g_strdup (update_version);
        gs_app_ui_versions_invalidate (app);
 }
 
@@ -1441,7 +1443,7 @@ const gchar *
 gs_app_get_update_details (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->update_details;
+       return APP_PRIV (app)->update_details;
 }
 
 /**
@@ -1451,8 +1453,8 @@ void
 gs_app_set_update_details (GsApp *app, const gchar *update_details)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_free (app->priv->update_details);
-       app->priv->update_details = g_strdup (update_details);
+       g_free (APP_PRIV (app)->update_details);
+       APP_PRIV (app)->update_details = g_strdup (update_details);
 }
 
 /**
@@ -1462,7 +1464,7 @@ const gchar *
 gs_app_get_management_plugin (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->management_plugin;
+       return APP_PRIV (app)->management_plugin;
 }
 
 /**
@@ -1475,8 +1477,8 @@ void
 gs_app_set_management_plugin (GsApp *app, const gchar *management_plugin)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_free (app->priv->management_plugin);
-       app->priv->management_plugin = g_strdup (management_plugin);
+       g_free (APP_PRIV (app)->management_plugin);
+       APP_PRIV (app)->management_plugin = g_strdup (management_plugin);
 }
 
 /**
@@ -1486,7 +1488,7 @@ gint
 gs_app_get_rating (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), -1);
-       return app->priv->rating;
+       return APP_PRIV (app)->rating;
 }
 
 /**
@@ -1496,7 +1498,7 @@ void
 gs_app_set_rating (GsApp *app, gint rating)
 {
        g_return_if_fail (GS_IS_APP (app));
-       app->priv->rating = rating;
+       APP_PRIV (app)->rating = rating;
        gs_app_queue_notify (app, "rating");
 }
 
@@ -1510,7 +1512,7 @@ gint
 gs_app_get_rating_confidence (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), -1);
-       return app->priv->rating_confidence;
+       return APP_PRIV (app)->rating_confidence;
 }
 
 /**
@@ -1528,7 +1530,7 @@ void
 gs_app_set_rating_confidence (GsApp *app, gint rating_confidence)
 {
        g_return_if_fail (GS_IS_APP (app));
-       app->priv->rating_confidence = rating_confidence;
+       APP_PRIV (app)->rating_confidence = rating_confidence;
 }
 
 /**
@@ -1538,7 +1540,7 @@ GsAppRatingKind
 gs_app_get_rating_kind (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), -1);
-       return app->priv->rating_kind;
+       return APP_PRIV (app)->rating_kind;
 }
 
 /**
@@ -1548,7 +1550,7 @@ void
 gs_app_set_rating_kind (GsApp *app, GsAppRatingKind rating_kind)
 {
        g_return_if_fail (GS_IS_APP (app));
-       app->priv->rating_kind = rating_kind;
+       APP_PRIV (app)->rating_kind = rating_kind;
        gs_app_queue_notify (app, "rating");
 }
 
@@ -1559,7 +1561,7 @@ guint64
 gs_app_get_size (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), G_MAXUINT64);
-       return app->priv->size;
+       return APP_PRIV (app)->size;
 }
 
 /**
@@ -1569,7 +1571,7 @@ void
 gs_app_set_size (GsApp *app, guint64 size)
 {
        g_return_if_fail (GS_IS_APP (app));
-       app->priv->size = size;
+       APP_PRIV (app)->size = size;
 }
 
 /**
@@ -1579,7 +1581,7 @@ const gchar *
 gs_app_get_metadata_item (GsApp *app, const gchar *key)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return g_hash_table_lookup (app->priv->metadata, key);
+       return g_hash_table_lookup (APP_PRIV (app)->metadata, key);
 }
 
 /**
@@ -1594,12 +1596,12 @@ gs_app_set_metadata (GsApp *app, const gchar *key, const gchar *value)
 
        /* if no value, then remove the key */
        if (value == NULL) {
-               g_hash_table_remove (app->priv->metadata, key);
+               g_hash_table_remove (APP_PRIV (app)->metadata, key);
                return;
        }
 
        /* check we're not overwriting */
-       found = g_hash_table_lookup (app->priv->metadata, key);
+       found = g_hash_table_lookup (APP_PRIV (app)->metadata, key);
        if (found != NULL) {
                if (g_strcmp0 (found, value) == 0)
                        return;
@@ -1607,7 +1609,7 @@ gs_app_set_metadata (GsApp *app, const gchar *key, const gchar *value)
                           key, found, value);
                return;
        }
-       g_hash_table_insert (app->priv->metadata,
+       g_hash_table_insert (APP_PRIV (app)->metadata,
                             g_strdup (key),
                             g_strdup (value));
 }
@@ -1619,7 +1621,7 @@ GPtrArray *
 gs_app_get_addons (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->addons;
+       return APP_PRIV (app)->addons;
 }
 
 /**
@@ -1635,14 +1637,14 @@ gs_app_add_addon (GsApp *app, GsApp *addon)
        g_return_if_fail (GS_IS_APP (addon));
 
        id = gs_app_get_id (addon);
-       found = g_hash_table_lookup (app->priv->addons_hash, id);
+       found = g_hash_table_lookup (APP_PRIV (app)->addons_hash, id);
        if (found != NULL) {
                g_debug ("Already added %s as an addon", id);
                return;
        }
-       g_hash_table_insert (app->priv->addons_hash, g_strdup (id), GINT_TO_POINTER (1));
+       g_hash_table_insert (APP_PRIV (app)->addons_hash, g_strdup (id), GINT_TO_POINTER (1));
 
-       g_ptr_array_add (app->priv->addons, g_object_ref (addon));
+       g_ptr_array_add (APP_PRIV (app)->addons, g_object_ref (addon));
 }
 
 /**
@@ -1652,7 +1654,7 @@ GPtrArray *
 gs_app_get_related (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->related;
+       return APP_PRIV (app)->related;
 }
 
 /**
@@ -1669,14 +1671,14 @@ gs_app_add_related (GsApp *app, GsApp *app2)
        key = g_strdup_printf ("%s-%s",
                               gs_app_get_id (app2),
                               gs_app_get_source_default (app2));
-       found = g_hash_table_lookup (app->priv->related_hash, key);
+       found = g_hash_table_lookup (APP_PRIV (app)->related_hash, key);
        if (found != NULL) {
                g_debug ("Already added %s as a related item", key);
                g_free (key);
                return;
        }
-       g_hash_table_insert (app->priv->related_hash, key, GINT_TO_POINTER (1));
-       g_ptr_array_add (app->priv->related, g_object_ref (app2));
+       g_hash_table_insert (APP_PRIV (app)->related_hash, key, GINT_TO_POINTER (1));
+       g_ptr_array_add (APP_PRIV (app)->related, g_object_ref (app2));
 }
 
 /**
@@ -1686,7 +1688,7 @@ GPtrArray *
 gs_app_get_history (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->history;
+       return APP_PRIV (app)->history;
 }
 
 /**
@@ -1696,21 +1698,21 @@ void
 gs_app_add_history (GsApp *app, GsApp *app2)
 {
        g_return_if_fail (GS_IS_APP (app));
-       g_ptr_array_add (app->priv->history, g_object_ref (app2));
+       g_ptr_array_add (APP_PRIV (app)->history, g_object_ref (app2));
 }
 
 guint64
 gs_app_get_install_date (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), 0);
-       return app->priv->install_date;
+       return APP_PRIV (app)->install_date;
 }
 
 void
 gs_app_set_install_date (GsApp *app, guint64 install_date)
 {
        g_return_if_fail (GS_IS_APP (app));
-       app->priv->install_date = install_date;
+       APP_PRIV (app)->install_date = install_date;
 }
 
 /**
@@ -1720,7 +1722,7 @@ GPtrArray *
 gs_app_get_categories (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->categories;
+       return APP_PRIV (app)->categories;
 }
 
 /**
@@ -1735,8 +1737,8 @@ gs_app_has_category (GsApp *app, const gchar *category)
        g_return_val_if_fail (GS_IS_APP (app), FALSE);
 
        /* find the category */
-       for (i = 0; i < app->priv->categories->len; i++) {
-               tmp = g_ptr_array_index (app->priv->categories, i);
+       for (i = 0; i < APP_PRIV (app)->categories->len; i++) {
+               tmp = g_ptr_array_index (APP_PRIV (app)->categories, i);
                if (g_strcmp0 (tmp, category) == 0)
                        return TRUE;
        }
@@ -1751,9 +1753,9 @@ gs_app_set_categories (GsApp *app, GPtrArray *categories)
 {
        g_return_if_fail (GS_IS_APP (app));
        g_return_if_fail (categories != NULL);
-       if (app->priv->categories != NULL)
-               g_ptr_array_unref (app->priv->categories);
-       app->priv->categories = g_ptr_array_ref (categories);
+       if (APP_PRIV (app)->categories != NULL)
+               g_ptr_array_unref (APP_PRIV (app)->categories);
+       APP_PRIV (app)->categories = g_ptr_array_ref (categories);
 }
 
 /**
@@ -1764,7 +1766,7 @@ gs_app_add_category (GsApp *app, const gchar *category)
 {
        g_return_if_fail (GS_IS_APP (app));
        g_return_if_fail (category != NULL);
-       g_ptr_array_add (app->priv->categories, g_strdup (category));
+       g_ptr_array_add (APP_PRIV (app)->categories, g_strdup (category));
 }
 
 /**
@@ -1774,7 +1776,7 @@ GPtrArray *
 gs_app_get_keywords (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), NULL);
-       return app->priv->keywords;
+       return APP_PRIV (app)->keywords;
 }
 
 /**
@@ -1785,9 +1787,9 @@ gs_app_set_keywords (GsApp *app, GPtrArray *keywords)
 {
        g_return_if_fail (GS_IS_APP (app));
        g_return_if_fail (keywords != NULL);
-       if (app->priv->keywords != NULL)
-               g_ptr_array_unref (app->priv->keywords);
-       app->priv->keywords = g_ptr_array_ref (keywords);
+       if (APP_PRIV (app)->keywords != NULL)
+               g_ptr_array_unref (APP_PRIV (app)->keywords);
+       APP_PRIV (app)->keywords = g_ptr_array_ref (keywords);
 }
 
 /**
@@ -1797,7 +1799,7 @@ void
 gs_app_add_kudo (GsApp *app, GsAppKudo kudo)
 {
        g_return_if_fail (GS_IS_APP (app));
-       app->priv->kudos |= kudo;
+       APP_PRIV (app)->kudos |= kudo;
 }
 
 /**
@@ -1807,7 +1809,7 @@ guint64
 gs_app_get_kudos (GsApp *app)
 {
        g_return_val_if_fail (GS_IS_APP (app), 0);
-       return app->priv->kudos;
+       return APP_PRIV (app)->kudos;
 }
 
 /**
@@ -1816,7 +1818,7 @@ gs_app_get_kudos (GsApp *app)
 guint
 gs_app_get_kudos_weight (GsApp *app)
 {
-       guint32 tmp = app->priv->kudos;
+       guint32 tmp = APP_PRIV (app)->kudos;
        tmp = tmp - ((tmp >> 1) & 0x55555555);
        tmp = (tmp & 0x33333333) + ((tmp >> 2) & 0x33333333);
        return (((tmp + (tmp >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
@@ -1832,35 +1834,35 @@ gs_app_get_kudos_percentage (GsApp *app)
 
        g_return_val_if_fail (GS_IS_APP (app), 0);
 
-       if ((app->priv->kudos & GS_APP_KUDO_MY_LANGUAGE) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_MY_LANGUAGE) > 0)
                percentage += 20;
-       if ((app->priv->kudos & GS_APP_KUDO_RECENT_RELEASE) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_RECENT_RELEASE) > 0)
                percentage += 20;
-       if ((app->priv->kudos & GS_APP_KUDO_FEATURED_RECOMMENDED) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_FEATURED_RECOMMENDED) > 0)
                percentage += 20;
-       if ((app->priv->kudos & GS_APP_KUDO_MODERN_TOOLKIT) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_MODERN_TOOLKIT) > 0)
                percentage += 20;
-       if ((app->priv->kudos & GS_APP_KUDO_SEARCH_PROVIDER) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_SEARCH_PROVIDER) > 0)
                percentage += 10;
-       if ((app->priv->kudos & GS_APP_KUDO_INSTALLS_USER_DOCS) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_INSTALLS_USER_DOCS) > 0)
                percentage += 10;
-       if ((app->priv->kudos & GS_APP_KUDO_USES_NOTIFICATIONS) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_USES_NOTIFICATIONS) > 0)
                percentage += 20;
-       if ((app->priv->kudos & GS_APP_KUDO_HAS_KEYWORDS) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_HAS_KEYWORDS) > 0)
                percentage += 5;
-       if ((app->priv->kudos & GS_APP_KUDO_USES_APP_MENU) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_USES_APP_MENU) > 0)
                percentage += 10;
-       if ((app->priv->kudos & GS_APP_KUDO_HAS_SCREENSHOTS) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_HAS_SCREENSHOTS) > 0)
                percentage += 20;
-       if ((app->priv->kudos & GS_APP_KUDO_IBUS_HAS_SYMBOL) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_IBUS_HAS_SYMBOL) > 0)
                percentage += 20;
-       if ((app->priv->kudos & GS_APP_KUDO_PERFECT_SCREENSHOTS) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_PERFECT_SCREENSHOTS) > 0)
                percentage += 20;
-       if ((app->priv->kudos & GS_APP_KUDO_HIGH_CONTRAST) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_HIGH_CONTRAST) > 0)
                percentage += 20;
 
        /* popular apps should be at *least* 50% */
-       if ((app->priv->kudos & GS_APP_KUDO_POPULAR) > 0)
+       if ((APP_PRIV (app)->kudos & GS_APP_KUDO_POPULAR) > 0)
                percentage = MAX (percentage, 50);
 
        return MIN (percentage, 100);
@@ -1872,7 +1874,7 @@ gs_app_get_kudos_percentage (GsApp *app)
 gboolean
 gs_app_get_to_be_installed (GsApp *app)
 {
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
        return priv->to_be_installed;
 }
 
@@ -1882,7 +1884,7 @@ gs_app_get_to_be_installed (GsApp *app)
 void
 gs_app_set_to_be_installed (GsApp *app, gboolean to_be_installed)
 {
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
        priv->to_be_installed = to_be_installed;
 }
 
@@ -1901,8 +1903,8 @@ gs_app_subsume (GsApp *app, GsApp *other)
        GList *keys;
        GList *l;
        GsApp *app_tmp;
-       GsAppPrivate *priv2 = other->priv;
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
+       GsAppPrivate *priv2 = gs_app_get_instance_private (other);
        guint i;
 
        g_return_if_fail (GS_IS_APP (app));
@@ -1988,7 +1990,7 @@ static void
 gs_app_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 {
        GsApp *app = GS_APP (object);
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
 
        switch (prop_id) {
        case PROP_ID:
@@ -2162,33 +2164,34 @@ gs_app_class_init (GsAppClass *klass)
 static void
 gs_app_init (GsApp *app)
 {
-       app->priv = gs_app_get_instance_private (app);
-       app->priv->rating = -1;
-       app->priv->rating_confidence = -1;
-       app->priv->rating_kind = GS_APP_RATING_KIND_UNKNOWN;
-       app->priv->sources = g_ptr_array_new_with_free_func (g_free);
-       app->priv->source_ids = g_ptr_array_new_with_free_func (g_free);
-       app->priv->categories = g_ptr_array_new_with_free_func (g_free);
-       app->priv->addons = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
-       app->priv->related = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
-       app->priv->history = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
-       app->priv->screenshots = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
-       app->priv->metadata = g_hash_table_new_full (g_str_hash,
-                                                    g_str_equal,
-                                                    g_free,
-                                                    g_free);
-       app->priv->addons_hash = g_hash_table_new_full (g_str_hash,
-                                                       g_str_equal,
-                                                       g_free,
-                                                       NULL);
-       app->priv->related_hash = g_hash_table_new_full (g_str_hash,
-                                                        g_str_equal,
-                                                        g_free,
-                                                        NULL);
-       app->priv->urls = g_hash_table_new_full (g_str_hash,
-                                                g_str_equal,
-                                                g_free,
-                                                g_free);
+       GsAppPrivate *priv = APP_PRIV (app);
+
+       priv->rating = -1;
+       priv->rating_confidence = -1;
+       priv->rating_kind = GS_APP_RATING_KIND_UNKNOWN;
+       priv->sources = g_ptr_array_new_with_free_func (g_free);
+       priv->source_ids = g_ptr_array_new_with_free_func (g_free);
+       priv->categories = g_ptr_array_new_with_free_func (g_free);
+       priv->addons = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
+       priv->related = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
+       priv->history = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
+       priv->screenshots = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
+       priv->metadata = g_hash_table_new_full (g_str_hash,
+                                               g_str_equal,
+                                               g_free,
+                                               g_free);
+       priv->addons_hash = g_hash_table_new_full (g_str_hash,
+                                                  g_str_equal,
+                                                  g_free,
+                                                  NULL);
+       priv->related_hash = g_hash_table_new_full (g_str_hash,
+                                                   g_str_equal,
+                                                   g_free,
+                                                   NULL);
+       priv->urls = g_hash_table_new_full (g_str_hash,
+                                           g_str_equal,
+                                           g_free,
+                                           g_free);
 }
 
 /**
@@ -2199,7 +2202,7 @@ static void
 gs_app_finalize (GObject *object)
 {
        GsApp *app = GS_APP (object);
-       GsAppPrivate *priv = app->priv;
+       GsAppPrivate *priv = APP_PRIV (app);
 
        g_free (priv->id);
        g_free (priv->name);
diff --git a/src/gs-app.h b/src/gs-app.h
index d0941b4..56761bb 100644
--- a/src/gs-app.h
+++ b/src/gs-app.h
@@ -41,7 +41,6 @@ typedef struct GsAppPrivate GsAppPrivate;
 typedef struct
 {
         GObject                 parent;
-        GsAppPrivate           *priv;
 } GsApp;
 
 typedef struct


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]