[epiphany/gnome-3-22] web-extension: Fix misuse of GCancellable



commit 40c8d7cb7a90c9a07e85f3541395773000ddea40
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Tue Nov 1 19:16:33 2016 -0500

    web-extension: Fix misuse of GCancellable

 embed/web-extension/ephy-web-extension.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/embed/web-extension/ephy-web-extension.c b/embed/web-extension/ephy-web-extension.c
index 16fd05b..0b915c3 100644
--- a/embed/web-extension/ephy-web-extension.c
+++ b/embed/web-extension/ephy-web-extension.c
@@ -1303,7 +1303,10 @@ ephy_web_extension_dispose (GObject *object)
     extension->page_created_signals_pending = NULL;
   }
 
-  g_clear_object (&extension->cancellable);
+  if (extension->cancellable) {
+    g_cancellable_cancel (extension->cancellable);
+    g_clear_object (&extension->cancellable);
+  }
   g_clear_object (&extension->dbus_connection);
 
   g_clear_object (&extension->extension);
@@ -1355,6 +1358,7 @@ dbus_connection_created_cb (GObject          *source_object,
   if (error) {
     g_warning ("Failed to connect to UI process: %s", error->message);
     g_error_free (error);
+    g_object_unref (extension);
     return;
   }
 
@@ -1370,11 +1374,14 @@ dbus_connection_created_cb (GObject          *source_object,
     g_warning ("Failed to register web extension object: %s\n", error->message);
     g_error_free (error);
     g_object_unref (connection);
+    g_object_unref (extension);
     return;
   }
 
   extension->dbus_connection = connection;
   ephy_web_extension_emit_page_created_signals_pending (extension);
+
+  g_object_unref (extension);
 }
 
 static gboolean
@@ -1422,6 +1429,6 @@ ephy_web_extension_initialize (EphyWebExtension   *extension,
                                      observer,
                                      extension->cancellable,
                                      (GAsyncReadyCallback)dbus_connection_created_cb,
-                                     extension);
+                                     g_object_ref (extension));
   g_object_unref (observer);
 }


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