]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-roster-model-manager.c
Fix broken nl translation
[empathy.git] / libempathy-gtk / empathy-roster-model-manager.c
index bd3eeeb009f1eb53d192ed60937c79038f10a079..e0fff03e9a3957d9257e665a24946285930066ca 100644 (file)
  */
 
 #include "config.h"
-
 #include "empathy-roster-model-manager.h"
 
-#include "empathy-roster-model.h"
-
 #include <glib/gi18n-lib.h>
 
-#include <libempathy/empathy-utils.h>
+#include "empathy-roster-model.h"
+#include "empathy-utils.h"
 
 static void roster_model_iface_init (EmpathyRosterModelInterface *iface);
 
@@ -195,15 +193,22 @@ top_individuals_changed_cb (EmpathyIndividualManager *manager,
               EMPATHY_ROSTER_MODEL_GROUP_TOP_GROUP, TRUE);
         }
     }
-  for (l = self->priv->top_group_members; l != NULL; l = g_list_next (l))
+
+  l = self->priv->top_group_members;
+  while (l != NULL)
     {
-      if (!individual_should_be_in_top_group_members (self, l->data))
+      FolksIndividual *individual = l->data;
+
+      /* remove_from_top_group_members will modify the list so we already take
+       * the next pointer. */
+      l = g_list_next (l);
+
+      if (!individual_should_be_in_top_group_members (self, individual))
         {
-          remove_from_top_group_members (self, l->data);
+          remove_from_top_group_members (self, individual);
 
-          empathy_roster_model_fire_groups_changed (
-              EMPATHY_ROSTER_MODEL (self), l->data,
-              EMPATHY_ROSTER_MODEL_GROUP_TOP_GROUP, FALSE);
+          empathy_roster_model_fire_groups_changed (EMPATHY_ROSTER_MODEL (self),
+              individual, EMPATHY_ROSTER_MODEL_GROUP_TOP_GROUP, FALSE);
         }
     }
 }