aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-roster-model-aggregator.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk/empathy-roster-model-aggregator.c')
-rw-r--r--libempathy-gtk/empathy-roster-model-aggregator.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/libempathy-gtk/empathy-roster-model-aggregator.c b/libempathy-gtk/empathy-roster-model-aggregator.c
index 824e35d9e..26c8f2ae7 100644
--- a/libempathy-gtk/empathy-roster-model-aggregator.c
+++ b/libempathy-gtk/empathy-roster-model-aggregator.c
@@ -175,7 +175,9 @@ populate_individuals (EmpathyRosterModelAggregator *self)
iter = gee_map_map_iterator (individuals);
while (gee_map_iterator_next (iter))
{
- add_individual (self, gee_map_iterator_get_value (iter));
+ FolksIndividual *individual = gee_map_iterator_get_value (iter);
+ add_individual (self, individual);
+ g_object_unref (individual);
}
g_clear_object (&iter);
}
@@ -195,7 +197,9 @@ aggregator_individuals_changed_cb (FolksIndividualAggregator *aggregator,
while (iter != NULL && gee_iterator_next (iter))
{
- add_individual (self, gee_iterator_get (iter));
+ FolksIndividual *individual = gee_iterator_get (iter);
+ add_individual (self, individual);
+ g_object_unref (individual);
}
g_clear_object (&iter);
}
@@ -206,7 +210,9 @@ aggregator_individuals_changed_cb (FolksIndividualAggregator *aggregator,
while (iter != NULL && gee_iterator_next (iter))
{
- remove_individual (self, gee_iterator_get (iter));
+ FolksIndividual *individual = gee_iterator_get (iter);
+ remove_individual (self, individual);
+ g_object_unref (individual);
}
g_clear_object (&iter);
}
@@ -405,6 +411,7 @@ empathy_roster_model_aggregator_dup_groups_for_individual (
while (iter != NULL && gee_iterator_next (iter))
{
+ /* Transfer ownership: */
groups_list = g_list_prepend (groups_list, gee_iterator_get (iter));
}
g_clear_object (&iter);