[Telepathy-commits] [telepathy-salut/master] gibber-file-transfer: keep a ref on the connection
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Fri Nov 21 03:46:51 PST 2008
---
lib/gibber/gibber-file-transfer.c | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/lib/gibber/gibber-file-transfer.c b/lib/gibber/gibber-file-transfer.c
index ac81f8d..8be767c 100644
--- a/lib/gibber/gibber-file-transfer.c
+++ b/lib/gibber/gibber-file-transfer.c
@@ -172,7 +172,7 @@ gibber_file_transfer_set_property (GObject *object,
self->direction = g_value_get_enum (value);
break;
case PROP_CONNECTION:
- self->priv->connection = g_value_get_object (value);
+ self->priv->connection = g_value_dup_object (value);
if (self->priv->connection != NULL)
g_signal_connect (self->priv->connection, "received-stanza",
G_CALLBACK (received_stanza_cb), self);
@@ -190,6 +190,7 @@ gibber_file_transfer_set_property (GObject *object,
}
static void gibber_file_transfer_finalize (GObject *object);
+static void gibber_file_transfer_dispose (GObject *object);
static void
gibber_file_transfer_class_init (GibberFileTransferClass *gibber_file_transfer_class)
@@ -199,6 +200,7 @@ gibber_file_transfer_class_init (GibberFileTransferClass *gibber_file_transfer_c
g_type_class_add_private (gibber_file_transfer_class, sizeof (GibberFileTransferPrivate));
+ object_class->dispose = gibber_file_transfer_dispose;
object_class->finalize = gibber_file_transfer_finalize;
object_class->get_property = gibber_file_transfer_get_property;
@@ -297,6 +299,20 @@ gibber_file_transfer_class_init (GibberFileTransferClass *gibber_file_transfer_c
}
static void
+gibber_file_transfer_dispose (GObject *object)
+{
+ GibberFileTransfer *self = GIBBER_FILE_TRANSFER (object);
+
+ if (self->priv->connection != NULL)
+ {
+ g_object_unref (self->priv->connection);
+ self->priv->connection = NULL;
+ }
+
+ G_OBJECT_CLASS (gibber_file_transfer_parent_class)->dispose (object);
+}
+
+static void
gibber_file_transfer_finalize (GObject *object)
{
GibberFileTransfer *self = GIBBER_FILE_TRANSFER (object);
--
1.5.6.5
More information about the Telepathy-commits
mailing list