summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2016-07-29 15:48:14 +1200
committerRobert Ancell <robert.ancell@canonical.com>2016-07-29 15:48:14 +1200
commitc57924403c46117fd112c8c88d3d30cc771aef04 (patch)
treee8cc0feff8e4b042c35448d98ebec568a547ce3f
parent432cd39d34e41c695420ae19593c7a09390b8a9e (diff)
downloadlightdm-git-c57924403c46117fd112c8c88d3d30cc771aef04.tar.gz
Remove IO watch on greeter destruction
-rw-r--r--liblightdm-gobject/greeter.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index 8cd1ee18..9b7f96c5 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -60,6 +60,7 @@ typedef struct
/* Channel to read from daemon */
GIOChannel *from_server_channel;
+ guint from_server_watch;
/* Data read from the daemon */
guint8 *read_buffer;
@@ -400,7 +401,7 @@ connect_to_daemon (LightDMGreeter *greeter)
return FALSE;
}
- g_io_add_watch (priv->from_server_channel, G_IO_IN, from_server_cb, greeter);
+ priv->from_server_watch = g_io_add_watch (priv->from_server_channel, G_IO_IN, from_server_cb, greeter);
if (!g_io_channel_set_encoding (priv->to_server_channel, NULL, &error) ||
!g_io_channel_set_encoding (priv->from_server_channel, NULL, &error))
@@ -1748,6 +1749,9 @@ lightdm_greeter_finalize (GObject *object)
g_io_channel_unref (priv->to_server_channel);
if (priv->from_server_channel)
g_io_channel_unref (priv->from_server_channel);
+ if (priv->from_server_watch)
+ g_source_remove (priv->from_server_watch);
+ priv->from_server_watch = 0;
g_clear_pointer (&priv->read_buffer, g_free);
g_list_free_full (priv->responses_received, g_free);
priv->responses_received = NULL;