diff options
Diffstat (limited to 'libempathy-gtk/empathy-roster-model-aggregator.c')
-rw-r--r-- | libempathy-gtk/empathy-roster-model-aggregator.c | 13 |
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); |