[empathy] empathy_roster_model_get_groups_for_individual: return a (transfer full) list



commit 616f55e491686779b760b0726f237f13f36ccdbb
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Wed Sep 12 13:12:51 2012 +0200

    empathy_roster_model_get_groups_for_individual: return a (transfer full) list
    
    gee_iterator_get() returns a new string, so we have to pass its ownership to
    the list to not leak it.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=683864

 libempathy-gtk/empathy-roster-model-manager.c |    4 ++--
 libempathy-gtk/empathy-roster-model.c         |    2 +-
 libempathy-gtk/empathy-roster-view.c          |    4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/libempathy-gtk/empathy-roster-model-manager.c b/libempathy-gtk/empathy-roster-model-manager.c
index 74789c7..3738c7f 100644
--- a/libempathy-gtk/empathy-roster-model-manager.c
+++ b/libempathy-gtk/empathy-roster-model-manager.c
@@ -373,14 +373,14 @@ empathy_roster_model_manager_get_groups_for_individual (
   if (is_xmpp_local_contact (individual))
     {
       groups_list = g_list_prepend (groups_list,
-          EMPATHY_ROSTER_MODEL_GROUP_PEOPLE_NEARBY);
+          g_strdup (EMPATHY_ROSTER_MODEL_GROUP_PEOPLE_NEARBY));
       return groups_list;
     }
 
   if (individual_in_top_group_members (EMPATHY_ROSTER_MODEL_MANAGER (model),
           individual))
     groups_list = g_list_prepend (groups_list,
-        EMPATHY_ROSTER_MODEL_GROUP_TOP_GROUP);
+        g_strdup (EMPATHY_ROSTER_MODEL_GROUP_TOP_GROUP));
 
   groups_set = folks_group_details_get_groups (
       FOLKS_GROUP_DETAILS (individual));
diff --git a/libempathy-gtk/empathy-roster-model.c b/libempathy-gtk/empathy-roster-model.c
index 269aba2..a7f094e 100644
--- a/libempathy-gtk/empathy-roster-model.c
+++ b/libempathy-gtk/empathy-roster-model.c
@@ -119,7 +119,7 @@ empathy_roster_model_get_individuals (EmpathyRosterModel *self)
  *
  * Returns the groups of which @individual is a member of.
  *
- * Returns: (transfer container): a #GList of (const gchar *) representing the
+ * Returns: (transfer full): a #GList of (gchar *) representing the
  * groups of @individual
  */
 GList *
diff --git a/libempathy-gtk/empathy-roster-view.c b/libempathy-gtk/empathy-roster-view.c
index d1e1c78..b5f2ccd 100644
--- a/libempathy-gtk/empathy-roster-view.c
+++ b/libempathy-gtk/empathy-roster-view.c
@@ -409,7 +409,7 @@ individual_added (EmpathyRosterView *self,
           add_to_group (self, individual, EMPATHY_ROSTER_MODEL_GROUP_UNGROUPED);
         }
 
-      g_list_free (groups);
+      g_list_free_full (groups, g_free);
     }
 
   tp_g_signal_connect_object (individual, "notify::is-favourite",
@@ -595,7 +595,7 @@ contact_in_top (EmpathyRosterView *self,
             (GCompareFunc) g_strcmp0) != NULL)
         result = TRUE;
 
-      g_list_free (groups);
+      g_list_free_full (groups, g_free);
 
       return result;
     }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]