summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@gmail.com>2010-08-09 15:57:04 +0200
committerXavier Claessens <xclaesse@gmail.com>2010-08-10 12:07:53 +0200
commit7ae33f004470b32d64143bfa63ea1000e53de81a (patch)
tree7952873394d4452dfb32ed9c429c2c0e3d2cbf1c
parent2c2dfdcc5449dedcd8529e3d9d42ddd417cc42bb (diff)
Make _client_create_tube_finish() return a ref
-rw-r--r--src/client-helpers.c3
-rw-r--r--src/vinagre/tab.c18
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;