[gdm/wip/iainl/client-no-weak-ref] libgdm: Drop weak refs on the GDBusConnection



commit c5fd292cf8ddd8131a12bdb7a12e26d3495d8edb
Author: Iain Lane <iainl gnome org>
Date:   Fri May 4 14:32:16 2018 +0100

    libgdm: Drop weak refs on the GDBusConnection
    
    The GDBusProxies hold a strong reference to the connection themselves.
    We don't need to do this, and we avoid the potential of operating on a
    disposed GDBusConnection if we leave them alone.

 libgdm/gdm-client.c |   44 ++------------------------------------------
 1 files changed, 2 insertions(+), 42 deletions(-)
---
diff --git a/libgdm/gdm-client.c b/libgdm/gdm-client.c
index bcae8ba..b440d69 100644
--- a/libgdm/gdm-client.c
+++ b/libgdm/gdm-client.c
@@ -454,7 +454,6 @@ gdm_client_open_connection_sync (GdmClient      *client,
                                                                                    NULL,
                                                                                    cancellable,
                                                                                    error);
-
                 if (client->priv->connection == NULL) {
                         g_clear_object (&client->priv->manager);
                         g_clear_pointer (&client->priv->address, g_free);
@@ -698,12 +697,9 @@ gdm_client_open_reauthentication_channel_sync (GdmClient     *client,
                                                           cancellable,
                                                           error);
 
-        if (user_verifier != NULL) {
-                g_object_weak_ref (G_OBJECT (user_verifier),
-                                   (GWeakNotify)
-                                   g_object_unref,
-                                   connection);
+        g_object_unref (connection);
 
+        if (user_verifier != NULL) {
                 g_object_weak_ref (G_OBJECT (user_verifier),
                                    (GWeakNotify)
                                    g_clear_object,
@@ -814,10 +810,6 @@ gdm_client_get_user_verifier_sync (GdmClient     *client,
                                    (GWeakNotify)
                                    g_clear_object,
                                    &client->priv->manager);
-                g_object_weak_ref (G_OBJECT (client->priv->user_verifier),
-                                   (GWeakNotify)
-                                   g_clear_object,
-                                   &client->priv->connection);
 
                 if (client->priv->enabled_extensions != NULL) {
                         gboolean res;
@@ -957,11 +949,6 @@ gdm_client_get_user_verifier_finish (GdmClient       *client,
 
         g_object_weak_ref (G_OBJECT (client->priv->user_verifier),
                            (GWeakNotify)
-                           g_object_unref,
-                           client->priv->connection);
-
-        g_object_weak_ref (G_OBJECT (client->priv->user_verifier),
-                           (GWeakNotify)
                            g_clear_object,
                            &client->priv->manager);
 
@@ -1132,11 +1119,6 @@ gdm_client_get_greeter_finish (GdmClient       *client,
 
         g_object_weak_ref (G_OBJECT (client->priv->greeter),
                            (GWeakNotify)
-                           g_object_unref,
-                           client->priv->connection);
-
-        g_object_weak_ref (G_OBJECT (client->priv->greeter),
-                           (GWeakNotify)
                            g_clear_object,
                            &client->priv->manager);
 
@@ -1184,10 +1166,6 @@ gdm_client_get_greeter_sync (GdmClient     *client,
                                    (GWeakNotify)
                                    g_clear_object,
                                    &client->priv->manager);
-                g_object_weak_ref (G_OBJECT (client->priv->greeter),
-                                   (GWeakNotify)
-                                   g_clear_object,
-                                   &client->priv->connection);
 
                 query_for_timed_login_requested_signal (client->priv->greeter);
         }
@@ -1317,11 +1295,6 @@ gdm_client_get_remote_greeter_finish (GdmClient     *client,
 
         g_object_weak_ref (G_OBJECT (client->priv->remote_greeter),
                            (GWeakNotify)
-                           g_object_unref,
-                           client->priv->connection);
-
-        g_object_weak_ref (G_OBJECT (client->priv->remote_greeter),
-                           (GWeakNotify)
                            g_clear_object,
                            &client->priv->manager);
 
@@ -1368,10 +1341,6 @@ gdm_client_get_remote_greeter_sync (GdmClient     *client,
                                    (GWeakNotify)
                                    g_clear_object,
                                    &client->priv->manager);
-                g_object_weak_ref (G_OBJECT (client->priv->remote_greeter),
-                                   (GWeakNotify)
-                                   g_clear_object,
-                                   &client->priv->connection);
         }
 
         return client->priv->remote_greeter;
@@ -1499,11 +1468,6 @@ gdm_client_get_chooser_finish (GdmClient       *client,
 
         g_object_weak_ref (G_OBJECT (client->priv->chooser),
                            (GWeakNotify)
-                           g_object_unref,
-                           client->priv->connection);
-
-        g_object_weak_ref (G_OBJECT (client->priv->chooser),
-                           (GWeakNotify)
                            g_clear_object,
                            &client->priv->manager);
 
@@ -1551,10 +1515,6 @@ gdm_client_get_chooser_sync (GdmClient     *client,
                                    (GWeakNotify)
                                    g_clear_object,
                                    &client->priv->manager);
-                g_object_weak_ref (G_OBJECT (client->priv->chooser),
-                                   (GWeakNotify)
-                                   g_clear_object,
-                                   &client->priv->connection);
         }
 
         return client->priv->chooser;


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