summaryrefslogtreecommitdiff
path: root/src/self.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/self.c')
-rw-r--r--src/self.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/self.c b/src/self.c
index 8cf55112..f2def72b 100644
--- a/src/self.c
+++ b/src/self.c
@@ -475,6 +475,12 @@ salut_self_dispose (GObject *object)
if (priv->olpc_activities != NULL)
g_hash_table_unref (priv->olpc_activities);
+
+ if (self->olpc_cur_act_room != 0)
+ {
+ tp_handle_unref (priv->room_repo, self->olpc_cur_act_room);
+ self->olpc_cur_act_room = 0;
+ }
#endif
priv->room_repo = NULL;
@@ -823,7 +829,12 @@ salut_self_set_olpc_current_activity (SalutSelf *self,
g_free (self->olpc_cur_act);
self->olpc_cur_act = g_strdup (id);
+
+ if (self->olpc_cur_act_room != 0)
+ tp_handle_unref (self->priv->room_repo, self->olpc_cur_act_room);
self->olpc_cur_act_room = room;
+ if (room != 0)
+ tp_handle_ref (self->priv->room_repo, room);
if (!SALUT_SELF_GET_CLASS (self)->update_current_activity (self, room_name,
&err))