summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Lane <iainl@gnome.org>2018-05-04 14:32:16 +0100
committerIain Lane <iainl@gnome.org>2018-05-04 18:32:39 +0100
commitc5fd292cf8ddd8131a12bdb7a12e26d3495d8edb (patch)
treea12d5cd8638cb8f0a5ead797d9ffbc6678200dbe
parentd8a9dafa736742a0532ea54f7a25ef302778c6d8 (diff)
downloadgdm-wip/iainl/client-no-weak-ref.tar.gz
libgdm: Drop weak refs on the GDBusConnectionwip/iainl/client-no-weak-ref
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.
-rw-r--r--libgdm/gdm-client.c44
1 files changed, 2 insertions, 42 deletions
diff --git a/libgdm/gdm-client.c b/libgdm/gdm-client.c
index bcae8ba2..b440d69f 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;