[Telepathy-commits] [telepathy-gabble/master] unref ActivityInfo when the view is closed
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Fri Sep 26 10:02:13 PDT 2008
20080526094901-7fe3f-9a5acba28085855eb32f41e8db58325d0109b316.gz
---
src/conn-olpc.c | 12 +++++++++---
src/olpc-activity-view.c | 9 +++++++++
src/olpc-activity-view.h | 4 ++++
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/src/conn-olpc.c b/src/conn-olpc.c
index 69186a9..32c4853 100644
--- a/src/conn-olpc.c
+++ b/src/conn-olpc.c
@@ -3462,8 +3462,7 @@ activity_query_result_cb (GabbleConnection *conn,
activity_info_set_properties (info, properties);
}
- /* TODO: remove activities when needed */
- /* TODO: unref ActivityInfo when removing */
+ /* TODO: remove activities when needed and unref ActivityInfo */
gabble_olpc_activity_view_add_activities (view, activities);
tp_handle_set_destroy (activities);
@@ -3471,10 +3470,17 @@ activity_query_result_cb (GabbleConnection *conn,
}
static void
-activity_view_closed_cb (GabbleOlpcBuddyView *view,
+activity_view_closed_cb (GabbleOlpcActivityView *view,
GabbleConnection *conn)
{
guint id;
+ TpHandleSet *activities;
+
+ /* decrement ActivityInfo */
+ activities = gabble_olpc_activity_view_get_activities (view);
+
+ tp_handle_set_foreach (activities,
+ decrement_contacts_activities_set_foreach, conn);
g_object_get (view, "id", &id, NULL);
g_hash_table_remove (conn->olpc_activity_views, GUINT_TO_POINTER (id));
diff --git a/src/olpc-activity-view.c b/src/olpc-activity-view.c
index ae79185..cbb9fcf 100644
--- a/src/olpc-activity-view.c
+++ b/src/olpc-activity-view.c
@@ -319,6 +319,15 @@ gabble_olpc_activity_view_add_activities (GabbleOlpcActivityView *self,
tp_intset_destroy (added);
}
+TpHandleSet *
+gabble_olpc_activity_view_get_activities (GabbleOlpcActivityView *self)
+{
+ GabbleOlpcActivityViewPrivate *priv = GABBLE_OLPC_ACTIVITY_VIEW_GET_PRIVATE (
+ self);
+
+ return priv->activities;
+}
+
static void
activity_view_iface_init (gpointer g_iface,
gpointer iface_data)
diff --git a/src/olpc-activity-view.h b/src/olpc-activity-view.h
index c700154..12285bd 100644
--- a/src/olpc-activity-view.h
+++ b/src/olpc-activity-view.h
@@ -66,6 +66,10 @@ GabbleOlpcActivityView * gabble_olpc_activity_view_new (GabbleConnection *conn,
void gabble_olpc_activity_view_add_activities (GabbleOlpcActivityView *self,
TpHandleSet *handles);
+
+TpHandleSet * gabble_olpc_activity_view_get_activities (
+ GabbleOlpcActivityView *self);
+
G_END_DECLS
#endif /* #ifndef __GABBLE_OLPC_ACTIVITY_VIEW_H__ */
--
1.5.6.5
More information about the Telepathy-commits
mailing list