[gnome-software] Get rid of last two g_cancellable_reset uses



commit de2f1828dfc0ebf22cbbdfb9b3ff155b8ce0f374
Author: Kalev Lember <kalevlember gmail com>
Date:   Sun Oct 5 21:36:38 2014 +0200

    Get rid of last two g_cancellable_reset uses
    
    It's safer to create new cancellables each time instead of resetting the
    existing ones.

 src/gs-shell-category.c |   14 ++++++++++----
 src/gs-shell-updates.c  |   16 ++++++++++++----
 2 files changed, 22 insertions(+), 8 deletions(-)
---
diff --git a/src/gs-shell-category.c b/src/gs-shell-category.c
index 02425f1..e332610 100644
--- a/src/gs-shell-category.c
+++ b/src/gs-shell-category.c
@@ -134,8 +134,11 @@ gs_shell_category_populate_filtered (GsShellCategory *shell)
        GtkWidget *tile;
        guint i;
 
-       g_cancellable_cancel (priv->cancellable);
-       g_cancellable_reset (priv->cancellable);
+       if (priv->cancellable != NULL) {
+               g_cancellable_cancel (priv->cancellable);
+               g_object_unref (priv->cancellable);
+       }
+       priv->cancellable = g_cancellable_new ();
 
        parent = gs_category_get_parent (priv->category);
        if (parent == NULL) {
@@ -281,10 +284,14 @@ gs_shell_category_finalize (GObject *object)
        GsShellCategory *shell = GS_SHELL_CATEGORY (object);
        GsShellCategoryPrivate *priv = shell->priv;
 
+       if (priv->cancellable != NULL) {
+               g_cancellable_cancel (priv->cancellable);
+               g_clear_object (&priv->cancellable);
+       }
+
        g_clear_object (&priv->builder);
        g_clear_object (&priv->category);
        g_clear_object (&priv->plugin_loader);
-       g_clear_object (&priv->cancellable);
        g_clear_object (&priv->col0_placeholder);
        g_clear_object (&priv->col1_placeholder);
 
@@ -346,7 +353,6 @@ gs_shell_category_setup (GsShellCategory *shell_category,
 
        priv->plugin_loader = g_object_ref (plugin_loader);
        priv->builder = g_object_ref (builder);
-       priv->cancellable = g_cancellable_new ();
        priv->shell = shell;
 
        g_signal_connect (priv->listbox_filter, "row-selected", G_CALLBACK (filter_selected), shell_category);
diff --git a/src/gs-shell-updates.c b/src/gs-shell-updates.c
index 5d7bb31..222db40 100644
--- a/src/gs-shell-updates.c
+++ b/src/gs-shell-updates.c
@@ -666,7 +666,13 @@ gs_shell_updates_get_new_updates (GsShellUpdates *shell_updates)
                                    priv->state == GS_SHELL_UPDATES_STATE_HAS_UPDATES ?
                                    GS_SHELL_UPDATES_STATE_ACTION_REFRESH_HAS_UPDATES :
                                    GS_SHELL_UPDATES_STATE_ACTION_REFRESH_NO_UPDATES);
-       g_cancellable_reset (priv->cancellable_refresh);
+
+       if (priv->cancellable_refresh != NULL) {
+               g_cancellable_cancel (priv->cancellable_refresh);
+               g_object_unref (priv->cancellable_refresh);
+       }
+       priv->cancellable_refresh = g_cancellable_new ();
+
        gs_plugin_loader_refresh_async (priv->plugin_loader,
                                        10 * 60,
                                        GS_PLUGIN_REFRESH_FLAGS_UPDATES,
@@ -755,6 +761,7 @@ gs_shell_updates_button_refresh_cb (GtkWidget *widget,
        if (priv->state == GS_SHELL_UPDATES_STATE_ACTION_REFRESH_HAS_UPDATES ||
            priv->state == GS_SHELL_UPDATES_STATE_ACTION_REFRESH_NO_UPDATES) {
                g_cancellable_cancel (priv->cancellable_refresh);
+               g_clear_object (&priv->cancellable_refresh);
                return;
        }
 
@@ -982,7 +989,6 @@ gs_shell_updates_init (GsShellUpdates *shell_updates)
 
        shell_updates->priv = gs_shell_updates_get_instance_private (shell_updates);
        shell_updates->priv->control = pk_control_new ();
-       shell_updates->priv->cancellable_refresh = g_cancellable_new ();
        shell_updates->priv->state = GS_SHELL_UPDATES_STATE_STARTUP;
        shell_updates->priv->settings = g_settings_new ("org.gnome.software");
        shell_updates->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface");
@@ -1001,9 +1007,11 @@ gs_shell_updates_finalize (GObject *object)
        GsShellUpdates *shell_updates = GS_SHELL_UPDATES (object);
        GsShellUpdatesPrivate *priv = shell_updates->priv;
 
-       g_cancellable_cancel (priv->cancellable_refresh);
+       if (priv->cancellable_refresh != NULL) {
+               g_cancellable_cancel (priv->cancellable_refresh);
+               g_object_unref (priv->cancellable_refresh);
+       }
 
-       g_object_unref (priv->cancellable_refresh);
        g_object_unref (priv->builder);
        g_object_unref (priv->plugin_loader);
        g_object_unref (priv->cancellable);


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