[empathy: 7/17] Don't destroy the request properties, EmpathyDispatcher now owns them
- From: Danielle Madeley <davyd src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy: 7/17] Don't destroy the request properties, EmpathyDispatcher now owns them
- Date: Tue, 22 Dec 2009 10:57:18 +0000 (UTC)
commit 91b6954805de2541dad743256cc3f9e9c6f65943
Author: Danielle Madeley <danielle madeley collabora co uk>
Date: Thu Dec 17 08:50:33 2009 +1100
Don't destroy the request properties, EmpathyDispatcher now owns them
This is not the same as tp-glib semantics (e.g. tp_..._call_create_channel).
Add some docs to EmpathyDispatcher to explain this, for the next person.
libempathy/empathy-dispatcher.c | 13 +++++++++++++
src/empathy-chat-window.c | 2 +-
2 files changed, 14 insertions(+), 1 deletions(-)
---
diff --git a/libempathy/empathy-dispatcher.c b/libempathy/empathy-dispatcher.c
index 49be0ba..839daba 100644
--- a/libempathy/empathy-dispatcher.c
+++ b/libempathy/empathy-dispatcher.c
@@ -1610,6 +1610,19 @@ empathy_dispatcher_call_create_or_ensure_channel (
}
}
+/**
+ * empathy_dispatcher_create_channel:
+ * @self: the EmpathyDispatcher
+ * @connection: the Connection to dispatch on
+ * @request: an a{sv} map of properties for the request, i.e. using tp_asv_new()
+ * @callback: a callback for when the channel arrives (or NULL)
+ * @user_data: optional user data (or NULL)
+ *
+ * When calling this function, #EmpathyDispatcher takes ownership of your
+ * reference to @request. DO NOT unref or destroy @request. When the request is
+ * done, @request will be unreferenced. Take another reference if you want to
+ * keep it around.
+ */
void
empathy_dispatcher_create_channel (EmpathyDispatcher *self,
TpConnection *connection,
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index bea85c6..2dbe09d 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -856,10 +856,10 @@ chat_window_upgrade_to_muc (EmpathyChat *chat,
NULL);
/* Although this is a MUC, it's anonymous, so CreateChannel is valid */
+ /* props now belongs to EmpathyDispatcher, don't free it */
empathy_dispatcher_create_channel (dispatcher, connection,
props, NULL, NULL);
- g_hash_table_destroy (props);
g_ptr_array_free (channels, TRUE);
g_object_unref (dispatcher);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]