summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2018-05-15 23:02:36 +0200
committerMarco Trevisan (TreviƱo) <mail@3v1n0.net>2018-06-04 22:41:23 +0200
commitb6e00b82fc43be0daef6fc4c1ad7c0336d974a3e (patch)
tree7cfa60432c6b3cc00e69cf907b966bb64e62150e
parentde270bca5a3037fe43d3661511e0d1f3f449d874 (diff)
downloadgdm-b6e00b82fc43be0daef6fc4c1ad7c0336d974a3e.tar.gz
libgdm: use g_object_unref instead of g_clear_object for weakrefs
At the moment we add a weakref on each proxy to the connection object. For the _sync variant functions, When the weakref fires, they call g_clear_object, clearing the connection, even if other proxies still have a reference. This commit changes that weak ref code to use g_object_unref instead. https://bugzilla.gnome.org/show_bug.cgi?id=795940
-rw-r--r--libgdm/gdm-client.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/libgdm/gdm-client.c b/libgdm/gdm-client.c
index c34121e6..e02e3ea5 100644
--- a/libgdm/gdm-client.c
+++ b/libgdm/gdm-client.c
@@ -764,8 +764,8 @@ gdm_client_get_user_verifier_sync (GdmClient *client,
&client->priv->user_verifier);
g_object_weak_ref (G_OBJECT (client->priv->user_verifier),
(GWeakNotify)
- g_clear_object,
- &client->priv->connection);
+ g_object_unref,
+ client->priv->connection);
if (client->priv->enabled_extensions != NULL) {
gboolean res;
@@ -1119,8 +1119,8 @@ gdm_client_get_greeter_sync (GdmClient *client,
&client->priv->greeter);
g_object_weak_ref (G_OBJECT (client->priv->greeter),
(GWeakNotify)
- g_clear_object,
- &client->priv->connection);
+ g_object_unref,
+ client->priv->connection);
query_for_timed_login_requested_signal (client->priv->greeter);
}
@@ -1294,8 +1294,8 @@ gdm_client_get_remote_greeter_sync (GdmClient *client,
&client->priv->remote_greeter);
g_object_weak_ref (G_OBJECT (client->priv->remote_greeter),
(GWeakNotify)
- g_clear_object,
- &client->priv->connection);
+ g_object_unref,
+ client->priv->connection);
}
return client->priv->remote_greeter;
@@ -1468,8 +1468,8 @@ gdm_client_get_chooser_sync (GdmClient *client,
&client->priv->chooser);
g_object_weak_ref (G_OBJECT (client->priv->chooser),
(GWeakNotify)
- g_clear_object,
- &client->priv->connection);
+ g_object_unref,
+ client->priv->connection);
}
return client->priv->chooser;