[empathy] tp-roomlist: ensure that we stay alive during the create_and_handle_channel async call
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] tp-roomlist: ensure that we stay alive during the create_and_handle_channel async call
- Date: Fri, 16 Sep 2011 08:33:03 +0000 (UTC)
commit e3ac85477f053b98531e1b295c498b41659ab0eb
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Fri Sep 16 10:26:42 2011 +0200
tp-roomlist: ensure that we stay alive during the create_and_handle_channel async call
https://bugzilla.gnome.org/show_bug.cgi?id=658909
libempathy/empathy-tp-roomlist.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/libempathy/empathy-tp-roomlist.c b/libempathy/empathy-tp-roomlist.c
index d66bfc0..79516a5 100644
--- a/libempathy/empathy-tp-roomlist.c
+++ b/libempathy/empathy-tp-roomlist.c
@@ -275,7 +275,7 @@ tp_roomlist_create_channel_cb (GObject *source,
if (priv->channel == NULL) {
DEBUG ("Error creating channel: %s", error->message);
g_error_free (error);
- return;
+ goto out;
}
g_signal_connect (priv->channel, "invalidated",
@@ -302,6 +302,9 @@ tp_roomlist_create_channel_cb (GObject *source,
call_list_rooms_cb, self, NULL, NULL);
priv->start_requested = FALSE;
}
+
+out:
+ g_object_unref (self);
}
static void
@@ -348,6 +351,9 @@ tp_roomlist_constructed (GObject *list)
req = tp_account_channel_request_new (priv->account, request,
TP_USER_ACTION_TIME_CURRENT_TIME);
+ /* Ensure we stay alive during the async call */
+ g_object_ref (list);
+
tp_account_channel_request_create_and_handle_channel_async (req, NULL,
tp_roomlist_create_channel_cb, list);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]