diff options
author | Xavier Claessens <xclaesse@gmail.com> | 2010-08-09 15:57:04 +0200 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2010-08-10 12:07:53 +0200 |
commit | 7ae33f004470b32d64143bfa63ea1000e53de81a (patch) | |
tree | 7952873394d4452dfb32ed9c429c2c0e3d2cbf1c | |
parent | 2c2dfdcc5449dedcd8529e3d9d42ddd417cc42bb (diff) |
Make _client_create_tube_finish() return a ref
-rw-r--r-- | src/client-helpers.c | 3 | ||||
-rw-r--r-- | src/vinagre/tab.c | 18 |
2 files changed, 20 insertions, 1 deletions
diff --git a/src/client-helpers.c b/src/client-helpers.c index 57a2d13..274f353 100644 --- a/src/client-helpers.c +++ b/src/client-helpers.c @@ -352,7 +352,8 @@ _client_create_tube_finish (GAsyncResult *result, g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL, _client_create_tube_finish), NULL); - return g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result)); + return g_object_ref (g_simple_async_result_get_op_res_gpointer ( + G_SIMPLE_ASYNC_RESULT (result))); } GSocket * diff --git a/src/vinagre/tab.c b/src/vinagre/tab.c index ef4e559..e107a29 100644 --- a/src/vinagre/tab.c +++ b/src/vinagre/tab.c @@ -233,6 +233,23 @@ constructed (GObject *object) G_OBJECT_CLASS (ssh_contact_tab_parent_class)->constructed (object); } +static void +dispose (GObject *object) +{ + SshContactTab *self = SSH_CONTACT_TAB (object); + + if (self->priv->tube_connection) + g_io_stream_close (G_IO_STREAM (self->priv->tube_connection), NULL, NULL); + tp_clear_object (&self->priv->tube_connection); + + if (self->priv->ssh_connection) + g_io_stream_close (G_IO_STREAM (self->priv->ssh_connection), NULL, NULL); + tp_clear_object (&self->priv->ssh_connection); + + if (G_OBJECT_CLASS (ssh_contact_tab_parent_class)->dispose) + G_OBJECT_CLASS (ssh_contact_tab_parent_class)->dispose (object); +} + static void ssh_contact_tab_class_init (SshContactTabClass *klass) { @@ -240,6 +257,7 @@ ssh_contact_tab_class_init (SshContactTabClass *klass) VinagreTabClass* tab_class = VINAGRE_TAB_CLASS (klass); object_class->constructed = constructed; + object_class->dispose = dispose; tab_class->impl_get_tooltip = impl_get_tooltip; tab_class->impl_get_screenshot = impl_get_screenshot; |