[gnome-software] plugin loader: Port to G_DECLARE_DERIVABLE_TYPE



commit da70afe71ff6c4b8343ef6e81fa99252466dc5d8
Author: Kalev Lember <klember redhat com>
Date:   Mon Sep 7 17:33:24 2015 +0200

    plugin loader: Port to G_DECLARE_DERIVABLE_TYPE

 src/gs-plugin-loader.c |  382 ++++++++++++++++++++++++++----------------------
 src/gs-plugin-loader.h |   18 +--
 2 files changed, 208 insertions(+), 192 deletions(-)
---
diff --git a/src/gs-plugin-loader.c b/src/gs-plugin-loader.c
index 473f6c6..d2b9763 100644
--- a/src/gs-plugin-loader.c
+++ b/src/gs-plugin-loader.c
@@ -31,7 +31,7 @@
 
 #define GS_PLUGIN_LOADER_UPDATES_CHANGED_DELAY 3       /* s */
 
-struct GsPluginLoaderPrivate
+typedef struct
 {
        GPtrArray               *plugins;
        gchar                   *location;
@@ -50,7 +50,7 @@ struct GsPluginLoaderPrivate
 
        guint                    updates_changed_id;
        gboolean                 online; 
-};
+} GsPluginLoaderPrivate;
 
 G_DEFINE_TYPE_WITH_PRIVATE (GsPluginLoader, gs_plugin_loader, G_TYPE_OBJECT)
 
@@ -120,13 +120,13 @@ gs_plugin_loader_app_sort_cb (gconstpointer a, gconstpointer b)
 GsApp *
 gs_plugin_loader_dedupe (GsPluginLoader *plugin_loader, GsApp *app)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GsApp *new_app;
-       GsPluginLoaderPrivate *priv = plugin_loader->priv;
 
        g_return_val_if_fail (GS_IS_PLUGIN_LOADER (plugin_loader), NULL);
        g_return_val_if_fail (GS_IS_APP (app), NULL);
 
-       g_mutex_lock (&plugin_loader->priv->app_cache_mutex);
+       g_mutex_lock (&priv->app_cache_mutex);
 
        /* not yet set */
        if (gs_app_get_id (app) == NULL) {
@@ -160,7 +160,7 @@ gs_plugin_loader_dedupe (GsPluginLoader *plugin_loader, GsApp *app)
        g_object_unref (app);
        g_object_ref (new_app);
 out:
-       g_mutex_unlock (&plugin_loader->priv->app_cache_mutex);
+       g_mutex_unlock (&priv->app_cache_mutex);
        return new_app;
 }
 
@@ -187,6 +187,7 @@ gs_plugin_loader_run_refine_plugin (GsPluginLoader *plugin_loader,
                                    GCancellable *cancellable,
                                    GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GsPluginRefineFunc plugin_func = NULL;
        const gchar *function_name = "gs_plugin_refine";
        gboolean exists;
@@ -211,7 +212,7 @@ gs_plugin_loader_run_refine_plugin (GsPluginLoader *plugin_loader,
                                              function_name_parent,
                                              function_name);
        }
-       gs_profile_start (plugin_loader->priv->profile, profile_id);
+       gs_profile_start (priv->profile, profile_id);
        ret = plugin_func (plugin, list, flags, cancellable, error);
        if (!ret) {
                /* check the plugin is well behaved and sets error
@@ -236,7 +237,7 @@ gs_plugin_loader_run_refine_plugin (GsPluginLoader *plugin_loader,
        }
 out:
        if (profile_id != NULL) {
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
        }
        return ret;
@@ -253,6 +254,7 @@ gs_plugin_loader_run_refine (GsPluginLoader *plugin_loader,
                             GCancellable *cancellable,
                             GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GList *l;
        GList *addons_list = NULL;
        GList *related_list = NULL;
@@ -270,8 +272,8 @@ gs_plugin_loader_run_refine (GsPluginLoader *plugin_loader,
                g_object_freeze_notify (G_OBJECT (l->data));
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = gs_plugin_loader_run_refine_plugin (plugin_loader,
@@ -361,6 +363,7 @@ gs_plugin_loader_run_results_plugin (GsPluginLoader *plugin_loader,
                                     GCancellable *cancellable,
                                     GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GsPluginResultsFunc plugin_func = NULL;
        gboolean exists;
        gboolean ret = TRUE;
@@ -376,7 +379,7 @@ gs_plugin_loader_run_results_plugin (GsPluginLoader *plugin_loader,
        /* run function */
        profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                      plugin->name, function_name);
-       gs_profile_start (plugin_loader->priv->profile, profile_id);
+       gs_profile_start (priv->profile, profile_id);
        g_assert (error == NULL || *error == NULL);
        ret = plugin_func (plugin, list, cancellable, error);
        if (!ret)
@@ -384,7 +387,7 @@ gs_plugin_loader_run_results_plugin (GsPluginLoader *plugin_loader,
 out:
        if (profile_id != NULL) {
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
        }
        return ret;
 }
@@ -399,6 +402,7 @@ gs_plugin_loader_run_results (GsPluginLoader *plugin_loader,
                              GCancellable *cancellable,
                              GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        gboolean ret = TRUE;
        GList *list = NULL;
        GsPlugin *plugin;
@@ -413,11 +417,11 @@ gs_plugin_loader_run_results (GsPluginLoader *plugin_loader,
        /* profile */
        profile_id_parent = g_strdup_printf ("GsPlugin::*(%s)",
                                             function_name);
-       gs_profile_start (plugin_loader->priv->profile, profile_id_parent);
+       gs_profile_start (priv->profile, profile_id_parent);
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = g_cancellable_set_error_if_cancelled (cancellable, error);
@@ -460,7 +464,7 @@ gs_plugin_loader_run_results (GsPluginLoader *plugin_loader,
                goto out;
        }
 out:
-       gs_profile_stop (plugin_loader->priv->profile, profile_id_parent);
+       gs_profile_stop (priv->profile, profile_id_parent);
        if (!ret) {
                gs_plugin_list_free (list);
                list = NULL;
@@ -626,7 +630,7 @@ static gboolean
 gs_plugin_loader_get_app_is_compatible (GsApp *app, gpointer user_data)
 {
        GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (user_data);
-       GsPluginLoaderPrivate *priv = plugin_loader->priv;
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *tmp;
        guint i;
 
@@ -668,6 +672,7 @@ gs_plugin_loader_run_action_plugin (GsPluginLoader *plugin_loader,
                                    GCancellable *cancellable,
                                    GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GError *error_local = NULL;
        GsPluginActionFunc plugin_func = NULL;
        gboolean exists;
@@ -681,7 +686,7 @@ gs_plugin_loader_run_action_plugin (GsPluginLoader *plugin_loader,
                goto out;
        profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                      plugin->name, function_name);
-       gs_profile_start (plugin_loader->priv->profile, profile_id);
+       gs_profile_start (priv->profile, profile_id);
        ret = plugin_func (plugin, app, cancellable, &error_local);
        if (!ret) {
                if (g_error_matches (error_local,
@@ -700,7 +705,7 @@ gs_plugin_loader_run_action_plugin (GsPluginLoader *plugin_loader,
 out:
        if (profile_id != NULL) {
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
        }
        return ret;
 }
@@ -715,14 +720,15 @@ gs_plugin_loader_run_action (GsPluginLoader *plugin_loader,
                             GCancellable *cancellable,
                             GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        gboolean ret;
        gboolean anything_ran = FALSE;
        GsPlugin *plugin;
        guint i;
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                if (g_cancellable_set_error_if_cancelled (cancellable, error))
@@ -1412,11 +1418,12 @@ gs_plugin_loader_search_thread_cb (GTask *task,
                                   gpointer task_data,
                                   GCancellable *cancellable)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *function_name = "gs_plugin_add_search";
        gboolean ret = TRUE;
        GError *error = NULL;
        GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
        GsPlugin *plugin;
        GsPluginSearchFunc plugin_func = NULL;
        guint i;
@@ -1432,8 +1439,8 @@ gs_plugin_loader_search_thread_cb (GTask *task,
                                         "no valid search terms");
                goto out;
        }
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = g_task_return_error_if_cancelled (task);
@@ -1446,14 +1453,14 @@ gs_plugin_loader_search_thread_cb (GTask *task,
                        continue;
                profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                              plugin->name, function_name);
-               gs_profile_start (plugin_loader->priv->profile, profile_id);
+               gs_profile_start (priv->profile, profile_id);
                ret = plugin_func (plugin, values, &state->list, cancellable, &error);
                if (!ret) {
                        g_task_return_error (task, error);
                        goto out;
                }
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
                g_clear_pointer (&profile_id, g_free);
        }
 
@@ -1481,7 +1488,7 @@ gs_plugin_loader_search_thread_cb (GTask *task,
        gs_plugin_list_filter (&state->list, gs_plugin_loader_filter_qt_for_gtk, NULL);
        gs_plugin_list_filter (&state->list, gs_plugin_loader_get_app_is_compatible, plugin_loader);
        if (((state->flags & GS_PLUGIN_REFINE_FLAGS_ALLOW_NO_APPDATA) == 0) &&
-           g_settings_get_boolean (plugin_loader->priv->settings, "require-appdata")) {
+           g_settings_get_boolean (priv->settings, "require-appdata")) {
                gs_plugin_list_filter (&state->list,
                                       gs_plugin_loader_get_app_has_appdata,
                                       plugin_loader);
@@ -1505,7 +1512,7 @@ gs_plugin_loader_search_thread_cb (GTask *task,
        g_task_return_pointer (task, gs_plugin_list_copy (state->list), (GDestroyNotify) gs_plugin_list_free);
 out:
        if (profile_id != NULL)
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
 }
 
 /**
@@ -1584,11 +1591,12 @@ gs_plugin_loader_search_files_thread_cb (GTask *task,
                                          gpointer task_data,
                                          GCancellable *cancellable)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *function_name = "gs_plugin_add_search_files";
        gboolean ret = TRUE;
        GError *error = NULL;
        GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
        GsPlugin *plugin;
        GsPluginSearchFunc plugin_func = NULL;
        guint i;
@@ -1599,8 +1607,8 @@ gs_plugin_loader_search_files_thread_cb (GTask *task,
        values[0] = g_strdup (state->value);
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = g_task_return_error_if_cancelled (task);
@@ -1613,14 +1621,14 @@ gs_plugin_loader_search_files_thread_cb (GTask *task,
                        continue;
                profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                              plugin->name, function_name);
-               gs_profile_start (plugin_loader->priv->profile, profile_id);
+               gs_profile_start (priv->profile, profile_id);
                ret = plugin_func (plugin, values, &state->list, cancellable, &error);
                if (!ret) {
                        g_task_return_error (task, error);
                        goto out;
                }
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
                g_clear_pointer (&profile_id, g_free);
        }
 
@@ -1649,7 +1657,7 @@ gs_plugin_loader_search_files_thread_cb (GTask *task,
        gs_plugin_list_filter (&state->list, gs_plugin_loader_filter_qt_for_gtk, NULL);
        gs_plugin_list_filter (&state->list, gs_plugin_loader_get_app_is_compatible, plugin_loader);
        if (((state->flags & GS_PLUGIN_REFINE_FLAGS_ALLOW_NO_APPDATA) == 0) &&
-           g_settings_get_boolean (plugin_loader->priv->settings, "require-appdata")) {
+           g_settings_get_boolean (priv->settings, "require-appdata")) {
                gs_plugin_list_filter (&state->list,
                                       gs_plugin_loader_get_app_has_appdata,
                                       plugin_loader);
@@ -1673,7 +1681,7 @@ gs_plugin_loader_search_files_thread_cb (GTask *task,
        g_task_return_pointer (task, gs_plugin_list_copy (state->list), (GDestroyNotify) gs_plugin_list_free);
 out:
        if (profile_id != NULL)
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
 }
 
 /**
@@ -1752,11 +1760,12 @@ gs_plugin_loader_search_what_provides_thread_cb (GTask *task,
                                                  gpointer task_data,
                                                  GCancellable *cancellable)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *function_name = "gs_plugin_add_search_what_provides";
        gboolean ret = TRUE;
        GError *error = NULL;
        GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
        GsPlugin *plugin;
        GsPluginSearchFunc plugin_func = NULL;
        guint i;
@@ -1767,8 +1776,8 @@ gs_plugin_loader_search_what_provides_thread_cb (GTask *task,
        values[0] = g_strdup (state->value);
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = g_task_return_error_if_cancelled (task);
@@ -1781,14 +1790,14 @@ gs_plugin_loader_search_what_provides_thread_cb (GTask *task,
                        continue;
                profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                              plugin->name, function_name);
-               gs_profile_start (plugin_loader->priv->profile, profile_id);
+               gs_profile_start (priv->profile, profile_id);
                ret = plugin_func (plugin, values, &state->list, cancellable, &error);
                if (!ret) {
                        g_task_return_error (task, error);
                        goto out;
                }
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
                g_clear_pointer (&profile_id, g_free);
        }
 
@@ -1817,7 +1826,7 @@ gs_plugin_loader_search_what_provides_thread_cb (GTask *task,
        gs_plugin_list_filter (&state->list, gs_plugin_loader_filter_qt_for_gtk, NULL);
        gs_plugin_list_filter (&state->list, gs_plugin_loader_get_app_is_compatible, plugin_loader);
        if (((state->flags & GS_PLUGIN_REFINE_FLAGS_ALLOW_NO_APPDATA) == 0) &&
-           g_settings_get_boolean (plugin_loader->priv->settings, "require-appdata")) {
+           g_settings_get_boolean (priv->settings, "require-appdata")) {
                gs_plugin_list_filter (&state->list,
                                       gs_plugin_loader_get_app_has_appdata,
                                       plugin_loader);
@@ -1841,7 +1850,7 @@ gs_plugin_loader_search_what_provides_thread_cb (GTask *task,
        g_task_return_pointer (task, gs_plugin_list_copy (state->list), (GDestroyNotify) gs_plugin_list_free);
 out:
        if (profile_id != NULL)
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
 }
 
 /**
@@ -1930,11 +1939,12 @@ gs_plugin_loader_get_categories_thread_cb (GTask *task,
                                           gpointer task_data,
                                           GCancellable *cancellable)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *function_name = "gs_plugin_add_categories";
        gboolean ret = TRUE;
        GError *error = NULL;
        GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
        GsPlugin *plugin;
        GsPluginResultsFunc plugin_func = NULL;
        GList *l;
@@ -1942,8 +1952,8 @@ gs_plugin_loader_get_categories_thread_cb (GTask *task,
        _cleanup_free_ gchar *profile_id = NULL;
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = g_task_return_error_if_cancelled (task);
@@ -1956,14 +1966,14 @@ gs_plugin_loader_get_categories_thread_cb (GTask *task,
                        continue;
                profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                              plugin->name, function_name);
-               gs_profile_start (plugin_loader->priv->profile, profile_id);
+               gs_profile_start (priv->profile, profile_id);
                ret = plugin_func (plugin, &state->list, cancellable, &error);
                if (!ret) {
                        g_task_return_error (task, error);
                        goto out;
                }
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
                g_clear_pointer (&profile_id, g_free);
        }
 
@@ -1985,7 +1995,7 @@ gs_plugin_loader_get_categories_thread_cb (GTask *task,
        g_task_return_pointer (task, gs_plugin_list_copy (state->list), (GDestroyNotify) gs_plugin_list_free);
 out:
        if (profile_id != NULL)
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
 }
 
 /**
@@ -2047,19 +2057,20 @@ gs_plugin_loader_get_category_apps_thread_cb (GTask *task,
                                              gpointer task_data,
                                              GCancellable *cancellable)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *function_name = "gs_plugin_add_category_apps";
        gboolean ret = TRUE;
        GError *error = NULL;
        GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
        GsPlugin *plugin;
        GsPluginCategoryFunc plugin_func = NULL;
        guint i;
        _cleanup_free_ gchar *profile_id = NULL;
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = g_task_return_error_if_cancelled (task);
@@ -2072,14 +2083,14 @@ gs_plugin_loader_get_category_apps_thread_cb (GTask *task,
                        continue;
                profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                              plugin->name, function_name);
-               gs_profile_start (plugin_loader->priv->profile, profile_id);
+               gs_profile_start (priv->profile, profile_id);
                ret = plugin_func (plugin, state->category, &state->list, cancellable, &error);
                if (!ret) {
                        g_task_return_error (task, error);
                        goto out;
                }
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
                g_clear_pointer (&profile_id, g_free);
        }
 
@@ -2104,7 +2115,7 @@ gs_plugin_loader_get_category_apps_thread_cb (GTask *task,
        gs_plugin_list_filter (&state->list, gs_plugin_loader_app_is_valid, state);
        gs_plugin_list_filter (&state->list, gs_plugin_loader_filter_qt_for_gtk, NULL);
        gs_plugin_list_filter (&state->list, gs_plugin_loader_get_app_is_compatible, plugin_loader);
-       if (g_settings_get_boolean (plugin_loader->priv->settings, "require-appdata")) {
+       if (g_settings_get_boolean (priv->settings, "require-appdata")) {
                gs_plugin_list_filter (&state->list,
                                       gs_plugin_loader_get_app_has_appdata,
                                       plugin_loader);
@@ -2124,7 +2135,7 @@ gs_plugin_loader_get_category_apps_thread_cb (GTask *task,
        g_task_return_pointer (task, gs_plugin_list_copy (state->list), (GDestroyNotify) gs_plugin_list_free);
 out:
        if (profile_id != NULL)
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
 }
 
 /**
@@ -2298,18 +2309,19 @@ gs_plugin_loader_app_action_thread_cb (GTask *task,
                                       gpointer task_data,
                                       GCancellable *cancellable)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GError *error = NULL;
        GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
        GPtrArray *addons;
        gboolean ret;
        guint i;
        _cleanup_list_free_ GList *list = NULL;
 
        /* add to list */
-       g_mutex_lock (&plugin_loader->priv->pending_apps_mutex);
-       g_ptr_array_add (plugin_loader->priv->pending_apps, g_object_ref (state->app));
-       g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_lock (&priv->pending_apps_mutex);
+       g_ptr_array_add (priv->pending_apps, g_object_ref (state->app));
+       g_mutex_unlock (&priv->pending_apps_mutex);
        g_idle_add (emit_pending_apps_idle, g_object_ref (plugin_loader));
 
        /* perform action */
@@ -2360,15 +2372,16 @@ gs_plugin_loader_app_action_thread_cb (GTask *task,
        }
 
        /* remove from list */
-       g_mutex_lock (&plugin_loader->priv->pending_apps_mutex);
-       g_ptr_array_remove (plugin_loader->priv->pending_apps, state->app);
-       g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_lock (&priv->pending_apps_mutex);
+       g_ptr_array_remove (priv->pending_apps, state->app);
+       g_mutex_unlock (&priv->pending_apps_mutex);
        g_idle_add (emit_pending_apps_idle, g_object_ref (plugin_loader));
 }
 
 static gboolean
 load_install_queue (GsPluginLoader *plugin_loader, GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GList *list = NULL;
        gboolean ret = TRUE;
        guint i;
@@ -2397,16 +2410,16 @@ load_install_queue (GsPluginLoader *plugin_loader, GError **error)
                app = gs_app_new (names[i]);
                gs_app_set_state (app, AS_APP_STATE_QUEUED_FOR_INSTALL);
 
-               g_mutex_lock (&plugin_loader->priv->app_cache_mutex);
-               g_hash_table_insert (plugin_loader->priv->app_cache,
+               g_mutex_lock (&priv->app_cache_mutex);
+               g_hash_table_insert (priv->app_cache,
                                     g_strdup (gs_app_get_id (app)),
                                     g_object_ref (app));
-               g_mutex_unlock (&plugin_loader->priv->app_cache_mutex);
+               g_mutex_unlock (&priv->app_cache_mutex);
 
-               g_mutex_lock (&plugin_loader->priv->pending_apps_mutex);
-               g_ptr_array_add (plugin_loader->priv->pending_apps,
+               g_mutex_lock (&priv->pending_apps_mutex);
+               g_ptr_array_add (priv->pending_apps,
                                 g_object_ref (app));
-               g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+               g_mutex_unlock (&priv->pending_apps_mutex);
 
                g_debug ("adding pending app %s", gs_app_get_id (app));
                gs_plugin_add_app (&list, app);
@@ -2431,6 +2444,7 @@ out:
 static void
 save_install_queue (GsPluginLoader *plugin_loader)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GPtrArray *pending_apps;
        gboolean ret;
        gint i;
@@ -2439,8 +2453,8 @@ save_install_queue (GsPluginLoader *plugin_loader)
        _cleanup_free_ gchar *file = NULL;
 
        s = g_string_new ("");
-       pending_apps = plugin_loader->priv->pending_apps;
-       g_mutex_lock (&plugin_loader->priv->pending_apps_mutex);
+       pending_apps = priv->pending_apps;
+       g_mutex_lock (&priv->pending_apps_mutex);
        for (i = pending_apps->len - 1; i >= 0; i--) {
                GsApp *app;
                app = g_ptr_array_index (pending_apps, i);
@@ -2449,7 +2463,7 @@ save_install_queue (GsPluginLoader *plugin_loader)
                        g_string_append_c (s, '\n');
                }
        }
-       g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_unlock (&priv->pending_apps_mutex);
 
        /* save file */
        file = g_build_filename (g_get_user_data_dir (),
@@ -2465,14 +2479,15 @@ save_install_queue (GsPluginLoader *plugin_loader)
 static void
 add_app_to_install_queue (GsPluginLoader *plugin_loader, GsApp *app)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GPtrArray *addons;
        guint i;
        guint id;
 
        /* queue the app itself */
-       g_mutex_lock (&plugin_loader->priv->pending_apps_mutex);
-       g_ptr_array_add (plugin_loader->priv->pending_apps, g_object_ref (app));
-       g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_lock (&priv->pending_apps_mutex);
+       g_ptr_array_add (priv->pending_apps, g_object_ref (app));
+       g_mutex_unlock (&priv->pending_apps_mutex);
 
        gs_app_set_state (app, AS_APP_STATE_QUEUED_FOR_INSTALL);
        id = g_idle_add (emit_pending_apps_idle, g_object_ref (plugin_loader));
@@ -2491,14 +2506,15 @@ add_app_to_install_queue (GsPluginLoader *plugin_loader, GsApp *app)
 static gboolean
 remove_app_from_install_queue (GsPluginLoader *plugin_loader, GsApp *app)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GPtrArray *addons;
        gboolean ret;
        guint i;
        guint id;
 
-       g_mutex_lock (&plugin_loader->priv->pending_apps_mutex);
-       ret = g_ptr_array_remove (plugin_loader->priv->pending_apps, app);
-       g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_lock (&priv->pending_apps_mutex);
+       ret = g_ptr_array_remove (priv->pending_apps, app);
+       g_mutex_unlock (&priv->pending_apps_mutex);
 
        if (ret) {
                gs_app_set_state (app, AS_APP_STATE_AVAILABLE);
@@ -2531,6 +2547,7 @@ gs_plugin_loader_app_action_async (GsPluginLoader *plugin_loader,
                                   GAsyncReadyCallback callback,
                                   gpointer user_data)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GsPluginLoaderAsyncState *state;
        _cleanup_object_unref_ GTask *task = NULL;
 
@@ -2547,7 +2564,7 @@ gs_plugin_loader_app_action_async (GsPluginLoader *plugin_loader,
        }
 
        if (action == GS_PLUGIN_LOADER_ACTION_INSTALL &&
-           !plugin_loader->priv->online) {
+           !priv->online) {
                add_app_to_install_queue (plugin_loader, app);
                task = g_task_new (plugin_loader, cancellable, callback, user_data);
                g_task_return_boolean (task, TRUE);
@@ -2613,12 +2630,12 @@ gs_plugin_loader_app_action_finish (GsPluginLoader *plugin_loader,
 AsAppState
 gs_plugin_loader_get_state_for_app (GsPluginLoader *plugin_loader, GsApp *app)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        AsAppState state = AS_APP_STATE_UNKNOWN;
        GsApp *tmp;
-       GsPluginLoaderPrivate *priv = plugin_loader->priv;
        guint i;
 
-       g_mutex_lock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_lock (&priv->pending_apps_mutex);
        for (i = 0; i < priv->pending_apps->len; i++) {
                tmp = g_ptr_array_index (priv->pending_apps, i);
                if (g_strcmp0 (gs_app_get_id (tmp), gs_app_get_id (app)) == 0) {
@@ -2626,7 +2643,7 @@ gs_plugin_loader_get_state_for_app (GsPluginLoader *plugin_loader, GsApp *app)
                        break;
                }
        }
-       g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_unlock (&priv->pending_apps_mutex);
        return state;
 }
 
@@ -2636,7 +2653,7 @@ gs_plugin_loader_get_state_for_app (GsPluginLoader *plugin_loader, GsApp *app)
 GPtrArray *
 gs_plugin_loader_get_pending (GsPluginLoader *plugin_loader)
 {
-       GsPluginLoaderPrivate *priv = plugin_loader->priv;
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GPtrArray *array;
        guint i;
 
@@ -2647,7 +2664,7 @@ gs_plugin_loader_get_pending (GsPluginLoader *plugin_loader)
                GsApp *app = g_ptr_array_index (priv->pending_apps, i);
                g_ptr_array_add (array, g_object_ref (app));
        }
-       g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_unlock (&priv->pending_apps_mutex);
 
        return array;
 }
@@ -2658,15 +2675,16 @@ gs_plugin_loader_get_pending (GsPluginLoader *plugin_loader)
 static void
 gs_plugin_loader_run (GsPluginLoader *plugin_loader, const gchar *function_name)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        gboolean ret;
        GsPluginFunc plugin_func = NULL;
        GsPlugin *plugin;
        guint i;
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
+       for (i = 0; i < priv->plugins->len; i++) {
                _cleanup_free_ gchar *profile_id = NULL;
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+               plugin = g_ptr_array_index (priv->plugins, i);
                ret = g_module_symbol (plugin->module,
                                       function_name,
                                       (gpointer *) &plugin_func);
@@ -2674,10 +2692,10 @@ gs_plugin_loader_run (GsPluginLoader *plugin_loader, const gchar *function_name)
                        continue;
                profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                              plugin->name, function_name);
-               gs_profile_start (plugin_loader->priv->profile, profile_id);
+               gs_profile_start (priv->profile, profile_id);
                plugin_func (plugin);
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
        }
 }
 
@@ -2689,12 +2707,13 @@ gs_plugin_loader_set_enabled (GsPluginLoader *plugin_loader,
                              const gchar *plugin_name,
                              gboolean enabled)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        gboolean ret = FALSE;
        GsPlugin *plugin;
        guint i;
 
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (g_strcmp0 (plugin->name, plugin_name) == 0) {
                        plugin->enabled = enabled;
                        ret = TRUE;
@@ -2714,16 +2733,17 @@ gs_plugin_loader_status_update_cb (GsPlugin *plugin,
                                   gpointer user_data)
 {
        GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (user_data);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
 
        /* same as last time */
-       if (app == NULL && status == plugin_loader->priv->status_last)
+       if (app == NULL && status == priv->status_last)
                return;
 
        /* new, or an app, so emit */
        g_debug ("emitting %s(%s)",
                 gs_plugin_status_to_string (status),
                 app != NULL ? gs_app_get_id (app) : "<general>");
-       plugin_loader->priv->status_last = status;
+       priv->status_last = status;
        g_signal_emit (plugin_loader,
                       signals[SIGNAL_STATUS_CHANGED],
                       0, app, status);
@@ -2735,14 +2755,15 @@ gs_plugin_loader_status_update_cb (GsPlugin *plugin,
 static gboolean
 gs_plugin_loader_updates_changed_delay_cb (gpointer user_data)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (user_data);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GList *apps;
        GList *l;
        GsApp *app;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (user_data);
 
        /* no longer know the state of these */
-       g_mutex_lock (&plugin_loader->priv->app_cache_mutex);
-       apps = g_hash_table_get_values (plugin_loader->priv->app_cache);
+       g_mutex_lock (&priv->app_cache_mutex);
+       apps = g_hash_table_get_values (priv->app_cache);
        for (l = apps; l != NULL; l = l->next) {
                app = GS_APP (l->data);
                gs_app_set_state (app, AS_APP_STATE_UNKNOWN);
@@ -2750,13 +2771,13 @@ gs_plugin_loader_updates_changed_delay_cb (gpointer user_data)
        g_list_free (apps);
 
        /* not valid anymore */
-       g_hash_table_remove_all (plugin_loader->priv->app_cache);
-       g_mutex_unlock (&plugin_loader->priv->app_cache_mutex);
+       g_hash_table_remove_all (priv->app_cache);
+       g_mutex_unlock (&priv->app_cache_mutex);
 
        /* notify shells */
        g_debug ("updates-changed");
        g_signal_emit (plugin_loader, signals[SIGNAL_UPDATES_CHANGED], 0);
-       plugin_loader->priv->updates_changed_id = 0;
+       priv->updates_changed_id = 0;
        return FALSE;
 }
 
@@ -2767,9 +2788,10 @@ static void
 gs_plugin_loader_updates_changed_cb (GsPlugin *plugin, gpointer user_data)
 {
        GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (user_data);
-       if (plugin_loader->priv->updates_changed_id != 0)
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
+       if (priv->updates_changed_id != 0)
                return;
-       plugin_loader->priv->updates_changed_id =
+       priv->updates_changed_id =
                g_timeout_add_seconds (GS_PLUGIN_LOADER_UPDATES_CHANGED_DELAY,
                                       gs_plugin_loader_updates_changed_delay_cb,
                                       plugin_loader);
@@ -2782,6 +2804,7 @@ static GsPlugin *
 gs_plugin_loader_open_plugin (GsPluginLoader *plugin_loader,
                              const gchar *filename)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        gboolean ret;
        GModule *module;
        GsPluginGetNameFunc plugin_name = NULL;
@@ -2822,12 +2845,12 @@ gs_plugin_loader_open_plugin (GsPluginLoader *plugin_loader,
        plugin->status_update_user_data = plugin_loader;
        plugin->updates_changed_fn = gs_plugin_loader_updates_changed_cb;
        plugin->updates_changed_user_data = plugin_loader;
-       plugin->profile = g_object_ref (plugin_loader->priv->profile);
+       plugin->profile = g_object_ref (priv->profile);
        plugin->scale = gs_plugin_loader_get_scale (plugin_loader);
        g_debug ("opened plugin %s: %s", filename, plugin->name);
 
        /* add to array */
-       g_ptr_array_add (plugin_loader->priv->plugins, plugin);
+       g_ptr_array_add (priv->plugins, plugin);
        return plugin;
 }
 
@@ -2837,13 +2860,14 @@ gs_plugin_loader_open_plugin (GsPluginLoader *plugin_loader,
 void
 gs_plugin_loader_set_scale (GsPluginLoader *plugin_loader, gint scale)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GsPlugin *plugin;
        guint i;
 
        /* save globally, and update each plugin */
-       plugin_loader->priv->scale = scale;
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       priv->scale = scale;
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                plugin->scale = scale;
        }
 }
@@ -2854,7 +2878,8 @@ gs_plugin_loader_set_scale (GsPluginLoader *plugin_loader, gint scale)
 gint
 gs_plugin_loader_get_scale (GsPluginLoader *plugin_loader)
 {
-       return plugin_loader->priv->scale;
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
+       return priv->scale;
 }
 
 /**
@@ -2863,19 +2888,20 @@ gs_plugin_loader_get_scale (GsPluginLoader *plugin_loader)
 void
 gs_plugin_loader_set_location (GsPluginLoader *plugin_loader, const gchar *location)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        _cleanup_free_ gchar *filename = NULL;
 
-       g_free (plugin_loader->priv->location);
+       g_free (priv->location);
 
        /* something non-default specified */
        if (location != NULL) {
-               plugin_loader->priv->location = g_strdup (location);
+               priv->location = g_strdup (location);
                return;
        }
 
        /* use the default, but this requires a 'make install' */
        filename = g_strdup_printf ("gs-plugins-%s", GS_PLUGIN_API_VERSION);
-       plugin_loader->priv->location = g_build_filename (LIBDIR, filename, NULL);
+       priv->location = g_build_filename (LIBDIR, filename, NULL);
 }
 
 /**
@@ -2900,7 +2926,7 @@ static GsPlugin *
 gs_plugin_loader_find_plugin (GsPluginLoader *plugin_loader,
                              const gchar *plugin_name)
 {
-       GsPluginLoaderPrivate *priv = plugin_loader->priv;
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GsPlugin *plugin;
        guint i;
 
@@ -2918,6 +2944,7 @@ gs_plugin_loader_find_plugin (GsPluginLoader *plugin_loader,
 gboolean
 gs_plugin_loader_setup (GsPluginLoader *plugin_loader, GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *filename_tmp;
        const gdouble dep_increment = 1.f;
        gboolean changes;
@@ -2929,18 +2956,18 @@ gs_plugin_loader_setup (GsPluginLoader *plugin_loader, GError **error)
        guint j;
        _cleanup_dir_close_ GDir *dir = NULL;
 
-       g_return_val_if_fail (plugin_loader->priv->location != NULL, FALSE);
+       g_return_val_if_fail (priv->location != NULL, FALSE);
 
        /* search in the plugin directory for plugins */
-       gs_profile_start (plugin_loader->priv->profile, "GsPlugin::setup");
-       dir = g_dir_open (plugin_loader->priv->location, 0, error);
+       gs_profile_start (priv->profile, "GsPlugin::setup");
+       dir = g_dir_open (priv->location, 0, error);
        if (dir == NULL) {
                ret = FALSE;
                goto out;
        }
 
        /* try to open each plugin */
-       g_debug ("searching for plugins in %s", plugin_loader->priv->location);
+       g_debug ("searching for plugins in %s", priv->location);
        do {
                _cleanup_free_ gchar *filename_plugin = NULL;
                filename_tmp = g_dir_read_name (dir);
@@ -2948,7 +2975,7 @@ gs_plugin_loader_setup (GsPluginLoader *plugin_loader, GError **error)
                        break;
                if (!g_str_has_suffix (filename_tmp, ".so"))
                        continue;
-               filename_plugin = g_build_filename (plugin_loader->priv->location,
+               filename_plugin = g_build_filename (priv->location,
                                                    filename_tmp,
                                                    NULL);
                gs_plugin_loader_open_plugin (plugin_loader, filename_plugin);
@@ -2957,8 +2984,8 @@ gs_plugin_loader_setup (GsPluginLoader *plugin_loader, GError **error)
        /* order by deps */
        do {
                changes = FALSE;
-               for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-                       plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+               for (i = 0; i < priv->plugins->len; i++) {
+                       plugin = g_ptr_array_index (priv->plugins, i);
                        if (plugin->deps == NULL)
                                continue;
                        for (j = 0; plugin->deps[j] != NULL && !changes; j++) {
@@ -2995,7 +3022,7 @@ gs_plugin_loader_setup (GsPluginLoader *plugin_loader, GError **error)
        } while (changes);
 
        /* sort by priority */
-       g_ptr_array_sort (plugin_loader->priv->plugins,
+       g_ptr_array_sort (priv->plugins,
                          gs_plugin_loader_plugin_sort_fn);
 
        /* run the plugins */
@@ -3006,7 +3033,7 @@ gs_plugin_loader_setup (GsPluginLoader *plugin_loader, GError **error)
        if (!ret)
                goto out;
 out:
-       gs_profile_stop (plugin_loader->priv->profile, "GsPlugin::setup");
+       gs_profile_stop (priv->profile, "GsPlugin::setup");
        return ret;
 }
 
@@ -3016,12 +3043,13 @@ out:
 void
 gs_plugin_loader_dump_state (GsPluginLoader *plugin_loader)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GsPlugin *plugin;
        guint i;
 
        /* print what the priorities are */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                g_debug ("[%s]\t%.1f\t->\t%s",
                         plugin->enabled ? "enabled" : "disabled",
                         plugin->priority,
@@ -3050,23 +3078,24 @@ static void
 gs_plugin_loader_dispose (GObject *object)
 {
        GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
 
-       if (plugin_loader->priv->plugins != NULL) {
+       if (priv->plugins != NULL) {
                gs_plugin_loader_run (plugin_loader, "gs_plugin_destroy");
-               g_clear_pointer (&plugin_loader->priv->plugins, g_ptr_array_unref);
+               g_clear_pointer (&priv->plugins, g_ptr_array_unref);
        }
-       if (plugin_loader->priv->updates_changed_id != 0) {
-               g_source_remove (plugin_loader->priv->updates_changed_id);
-               plugin_loader->priv->updates_changed_id = 0;
+       if (priv->updates_changed_id != 0) {
+               g_source_remove (priv->updates_changed_id);
+               priv->updates_changed_id = 0;
        }
-       if (plugin_loader->priv->profile != NULL) {
-               gs_profile_stop (plugin_loader->priv->profile, "GsPluginLoader");
-               g_clear_object (&plugin_loader->priv->profile);
+       if (priv->profile != NULL) {
+               gs_profile_stop (priv->profile, "GsPluginLoader");
+               g_clear_object (&priv->profile);
        }
 
-       g_clear_object (&plugin_loader->priv->settings);
-       g_clear_pointer (&plugin_loader->priv->app_cache, g_hash_table_unref);
-       g_clear_pointer (&plugin_loader->priv->pending_apps, g_ptr_array_unref);
+       g_clear_object (&priv->settings);
+       g_clear_pointer (&priv->app_cache, g_hash_table_unref);
+       g_clear_pointer (&priv->pending_apps, g_ptr_array_unref);
 
        G_OBJECT_CLASS (gs_plugin_loader_parent_class)->dispose (object);
 }
@@ -3078,20 +3107,14 @@ gs_plugin_loader_dispose (GObject *object)
 static void
 gs_plugin_loader_finalize (GObject *object)
 {
-       GsPluginLoader *plugin_loader;
-
-       g_return_if_fail (object != NULL);
-       g_return_if_fail (GS_IS_PLUGIN_LOADER (object));
-
-       plugin_loader = GS_PLUGIN_LOADER (object);
-
-       g_return_if_fail (plugin_loader->priv != NULL);
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
 
-       g_strfreev (plugin_loader->priv->compatible_projects);
-       g_free (plugin_loader->priv->location);
+       g_strfreev (priv->compatible_projects);
+       g_free (priv->location);
 
-       g_mutex_clear (&plugin_loader->priv->pending_apps_mutex);
-       g_mutex_clear (&plugin_loader->priv->app_cache_mutex);
+       g_mutex_clear (&priv->pending_apps_mutex);
+       g_mutex_clear (&priv->app_cache_mutex);
 
        G_OBJECT_CLASS (gs_plugin_loader_parent_class)->finalize (object);
 }
@@ -3134,39 +3157,39 @@ gs_plugin_loader_class_init (GsPluginLoaderClass *klass)
 static void
 gs_plugin_loader_init (GsPluginLoader *plugin_loader)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *tmp;
        gchar **projects;
        guint i;
 
-       plugin_loader->priv = gs_plugin_loader_get_instance_private (plugin_loader);
-       plugin_loader->priv->scale = 1;
-       plugin_loader->priv->plugins = g_ptr_array_new_with_free_func ((GDestroyNotify) 
gs_plugin_loader_plugin_free);
-       plugin_loader->priv->status_last = GS_PLUGIN_STATUS_LAST;
-       plugin_loader->priv->pending_apps = g_ptr_array_new_with_free_func ((GFreeFunc) g_object_unref);
-       plugin_loader->priv->profile = gs_profile_new ();
-       plugin_loader->priv->settings = g_settings_new ("org.gnome.software");
-       plugin_loader->priv->app_cache = g_hash_table_new_full (g_str_hash,
+       priv->scale = 1;
+       priv->plugins = g_ptr_array_new_with_free_func ((GDestroyNotify) gs_plugin_loader_plugin_free);
+       priv->status_last = GS_PLUGIN_STATUS_LAST;
+       priv->pending_apps = g_ptr_array_new_with_free_func ((GFreeFunc) g_object_unref);
+       priv->profile = gs_profile_new ();
+       priv->settings = g_settings_new ("org.gnome.software");
+       priv->app_cache = g_hash_table_new_full (g_str_hash,
                                                                g_str_equal,
                                                                g_free,
                                                                (GFreeFunc) g_object_unref);
 
-       g_mutex_init (&plugin_loader->priv->pending_apps_mutex);
-       g_mutex_init (&plugin_loader->priv->app_cache_mutex);
+       g_mutex_init (&priv->pending_apps_mutex);
+       g_mutex_init (&priv->app_cache_mutex);
 
        /* application start */
-       gs_profile_start (plugin_loader->priv->profile, "GsPluginLoader");
+       gs_profile_start (priv->profile, "GsPluginLoader");
 
        /* by default we only show project-less apps or compatible projects */
        tmp = g_getenv ("GNOME_SOFTWARE_COMPATIBLE_PROJECTS");
        if (tmp == NULL) {
-               projects = g_settings_get_strv (plugin_loader->priv->settings,
+               projects = g_settings_get_strv (priv->settings,
                                                "compatible-projects");
        } else {
                projects = g_strsplit (tmp, ",", -1);
        }
        for (i = 0; projects[i] != NULL; i++)
                g_debug ("compatible-project: %s", projects[i]);
-       plugin_loader->priv->compatible_projects = projects;
+       priv->compatible_projects = projects;
 }
 
 /**
@@ -3212,28 +3235,29 @@ void
 gs_plugin_loader_set_network_status (GsPluginLoader *plugin_loader,
                                     gboolean online)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        GList *l;
        GList *queue = NULL;
        GsApp *app;
        guint i;
 
-       if (plugin_loader->priv->online == online)
+       if (priv->online == online)
                return;
 
        g_debug ("*** Network status change: %s", online ? "online" : "offline");
 
-       plugin_loader->priv->online = online;
+       priv->online = online;
 
        if (!online)
                return;
 
-       g_mutex_lock (&plugin_loader->priv->pending_apps_mutex);
-       for (i = 0; i < plugin_loader->priv->pending_apps->len; i++) {
-               app = g_ptr_array_index (plugin_loader->priv->pending_apps, i);
+       g_mutex_lock (&priv->pending_apps_mutex);
+       for (i = 0; i < priv->pending_apps->len; i++) {
+               app = g_ptr_array_index (priv->pending_apps, i);
                if (gs_app_get_state (app) == AS_APP_STATE_QUEUED_FOR_INSTALL)
                        gs_plugin_add_app (&queue, app);
        }
-       g_mutex_unlock (&plugin_loader->priv->pending_apps_mutex);
+       g_mutex_unlock (&priv->pending_apps_mutex);
        for (l = queue; l; l = l->next) {
                app = l->data;
                gs_plugin_loader_app_action_async (plugin_loader,
@@ -3259,6 +3283,7 @@ gs_plugin_loader_run_refresh_plugin (GsPluginLoader *plugin_loader,
                                     GCancellable *cancellable,
                                     GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *function_name = "gs_plugin_refresh";
        gboolean exists;
        gboolean ret = TRUE;
@@ -3273,7 +3298,7 @@ gs_plugin_loader_run_refresh_plugin (GsPluginLoader *plugin_loader,
                goto out;
        profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                      plugin->name, function_name);
-       gs_profile_start (plugin_loader->priv->profile, profile_id);
+       gs_profile_start (priv->profile, profile_id);
        ret = plugin_func (plugin, cache_age, flags, cancellable, &error_local);
        if (!ret) {
                if (g_error_matches (error_local,
@@ -3292,7 +3317,7 @@ gs_plugin_loader_run_refresh_plugin (GsPluginLoader *plugin_loader,
 out:
        if (profile_id != NULL) {
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
        }
        return ret;
 }
@@ -3307,14 +3332,15 @@ gs_plugin_loader_run_refresh (GsPluginLoader *plugin_loader,
                              GCancellable *cancellable,
                              GError **error)
 {
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        gboolean anything_ran = FALSE;
        gboolean ret;
        GsPlugin *plugin;
        guint i;
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                if (g_cancellable_set_error_if_cancelled (cancellable, error))
@@ -3430,19 +3456,20 @@ gs_plugin_loader_filename_to_app_thread_cb (GTask *task,
                                            gpointer task_data,
                                            GCancellable *cancellable)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *function_name = "gs_plugin_filename_to_app";
        gboolean ret = TRUE;
        GError *error = NULL;
        GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
        GsPlugin *plugin;
        GsPluginFilenameToAppFunc plugin_func = NULL;
        guint i;
        _cleanup_free_ gchar *profile_id = NULL;
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = g_task_return_error_if_cancelled (task);
@@ -3455,14 +3482,14 @@ gs_plugin_loader_filename_to_app_thread_cb (GTask *task,
                        continue;
                profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                              plugin->name, function_name);
-               gs_profile_start (plugin_loader->priv->profile, profile_id);
+               gs_profile_start (priv->profile, profile_id);
                ret = plugin_func (plugin, &state->list, state->filename, cancellable, &error);
                if (!ret) {
                        g_task_return_error (task, error);
                        goto out;
                }
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
                g_clear_pointer (&profile_id, g_free);
        }
 
@@ -3503,7 +3530,7 @@ gs_plugin_loader_filename_to_app_thread_cb (GTask *task,
        g_task_return_pointer (task, g_object_ref (state->list->data), (GDestroyNotify) g_object_unref);
 out:
        if (profile_id != NULL)
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
 }
 
 /**
@@ -3573,19 +3600,20 @@ gs_plugin_loader_offline_update_thread_cb (GTask *task,
                                            gpointer task_data,
                                            GCancellable *cancellable)
 {
+       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
+       GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
        const gchar *function_name = "gs_plugin_offline_update";
        gboolean ret = TRUE;
        GError *error = NULL;
        GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
-       GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
        GsPlugin *plugin;
        GsPluginOfflineUpdateFunc plugin_func = NULL;
        guint i;
        _cleanup_free_ gchar *profile_id = NULL;
 
        /* run each plugin */
-       for (i = 0; i < plugin_loader->priv->plugins->len; i++) {
-               plugin = g_ptr_array_index (plugin_loader->priv->plugins, i);
+       for (i = 0; i < priv->plugins->len; i++) {
+               plugin = g_ptr_array_index (priv->plugins, i);
                if (!plugin->enabled)
                        continue;
                ret = g_task_return_error_if_cancelled (task);
@@ -3598,21 +3626,21 @@ gs_plugin_loader_offline_update_thread_cb (GTask *task,
                        continue;
                profile_id = g_strdup_printf ("GsPlugin::%s(%s)",
                                              plugin->name, function_name);
-               gs_profile_start (plugin_loader->priv->profile, profile_id);
+               gs_profile_start (priv->profile, profile_id);
                ret = plugin_func (plugin, state->list, cancellable, &error);
                if (!ret) {
                        g_task_return_error (task, error);
                        goto out;
                }
                gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED);
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
                g_clear_pointer (&profile_id, g_free);
        }
 
        g_task_return_boolean (task, TRUE);
 out:
        if (profile_id != NULL)
-               gs_profile_stop (plugin_loader->priv->profile, profile_id);
+               gs_profile_stop (priv->profile, profile_id);
 }
 
 /**
diff --git a/src/gs-plugin-loader.h b/src/gs-plugin-loader.h
index de24cda..b823efd 100644
--- a/src/gs-plugin-loader.h
+++ b/src/gs-plugin-loader.h
@@ -31,22 +31,11 @@
 G_BEGIN_DECLS
 
 #define GS_TYPE_PLUGIN_LOADER          (gs_plugin_loader_get_type ())
-#define GS_PLUGIN_LOADER(o)            (G_TYPE_CHECK_INSTANCE_CAST ((o), GS_TYPE_PLUGIN_LOADER, 
GsPluginLoader))
-#define GS_PLUGIN_LOADER_CLASS(k)      (G_TYPE_CHECK_CLASS_CAST((k), GS_TYPE_PLUGIN_LOADER, 
GsPluginLoaderClass))
-#define GS_IS_PLUGIN_LOADER(o)         (G_TYPE_CHECK_INSTANCE_TYPE ((o), GS_TYPE_PLUGIN_LOADER))
-#define GS_IS_PLUGIN_LOADER_CLASS(k)   (G_TYPE_CHECK_CLASS_TYPE ((k), GS_TYPE_PLUGIN_LOADER))
-#define GS_PLUGIN_LOADER_GET_CLASS(o)  (G_TYPE_INSTANCE_GET_CLASS ((o), GS_TYPE_PLUGIN_LOADER, 
GsPluginLoaderClass))
 #define GS_PLUGIN_LOADER_ERROR         (gs_plugin_loader_error_quark ())
 
-typedef struct GsPluginLoaderPrivate GsPluginLoaderPrivate;
+G_DECLARE_DERIVABLE_TYPE (GsPluginLoader, gs_plugin_loader, GS, PLUGIN_LOADER, GObject)
 
-typedef struct
-{
-        GObject                 parent;
-        GsPluginLoaderPrivate  *priv;
-} GsPluginLoader;
-
-typedef struct
+struct _GsPluginLoaderClass
 {
        GObjectClass             parent_class;
        void                    (*status_changed)       (GsPluginLoader *plugin_loader,
@@ -54,7 +43,7 @@ typedef struct
                                                         GsPluginStatus  status);
        void                    (*pending_apps_changed) (GsPluginLoader *plugin_loader);
        void                    (*updates_changed)      (GsPluginLoader *plugin_loader);
-} GsPluginLoaderClass;
+};
 
 typedef enum
 {
@@ -75,7 +64,6 @@ typedef void   (*GsPluginLoaderFinishedFunc)          (GsPluginLoader *plugin_loader,
                                                         gpointer        user_data);
 
 GQuark          gs_plugin_loader_error_quark           (void);
-GType           gs_plugin_loader_get_type              (void);
 
 GsPluginLoader *gs_plugin_loader_new                   (void);
 void            gs_plugin_loader_get_installed_async   (GsPluginLoader *plugin_loader,


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