]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-roster-model-aggregator.c
remove released flag
[empathy.git] / libempathy-gtk / empathy-roster-model-aggregator.c
index b0b68449a66306fe987bab0bf14dd01f321f2906..26c8f2ae7909c4d585d74fea0f93ab817d301e27 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-
 #include "config.h"
+#include "empathy-roster-model-aggregator.h"
 
-#include <folks/folks.h>
 #include <folks/folks-telepathy.h>
 
-#include "empathy-roster-model-aggregator.h"
-
 /**
  * SECTION: empathy-roster-model-aggregator
  * @title: EmpathyRosterModelAggregator
@@ -178,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);
 }
@@ -198,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);
     }
@@ -209,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);
     }
@@ -279,7 +282,7 @@ empathy_roster_model_aggregator_constructed (GObject *object)
     chain_up (object);
 
   if (self->priv->aggregator == NULL)
-    self->priv->aggregator = folks_individual_aggregator_new ();
+    self->priv->aggregator = folks_individual_aggregator_dup ();
 
   g_assert (FOLKS_IS_INDIVIDUAL_AGGREGATOR (self->priv->aggregator));
 
@@ -393,7 +396,7 @@ empathy_roster_model_aggregator_get_individuals (EmpathyRosterModel *model)
 }
 
 static GList *
-empathy_roster_model_aggregator_get_groups_for_individual (
+empathy_roster_model_aggregator_dup_groups_for_individual (
     EmpathyRosterModel *model,
     FolksIndividual *individual)
 {
@@ -408,6 +411,7 @@ empathy_roster_model_aggregator_get_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);
@@ -420,6 +424,6 @@ static void
 roster_model_iface_init (EmpathyRosterModelInterface *iface)
 {
   iface->get_individuals = empathy_roster_model_aggregator_get_individuals;
-  iface->get_groups_for_individual =
-    empathy_roster_model_aggregator_get_groups_for_individual;
+  iface->dup_groups_for_individual =
+    empathy_roster_model_aggregator_dup_groups_for_individual;
 }