* 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
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);
}
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);
}
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);
}
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));
}
static GList *
-empathy_roster_model_aggregator_get_groups_for_individual (
+empathy_roster_model_aggregator_dup_groups_for_individual (
EmpathyRosterModel *model,
FolksIndividual *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);
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;
}