notify: Make dedup code clearer
authorBenjamin Otte <otte@redhat.com>
Thu, 22 Jul 2010 19:51:28 +0000 (21:51 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 22 Jul 2010 19:56:21 +0000 (21:56 +0200)
A for loops seems easier to understand to me than gotos.

gobject/gobjectnotifyqueue.c

index ef1c90d..bf4d301 100644 (file)
@@ -124,16 +124,17 @@ g_object_notify_queue_thaw (GObject            *object,
   for (slist = nqueue->pspecs; slist; slist = slist->next)
     {
       GParamSpec *pspec = slist->data;
-      guint i = 0;
+      guint i;
 
       /* dedup, make pspecs in the list unique */
-    redo_dedup_check:
-      if (pspecs[i] == pspec)
-       continue;
-      if (++i < n_pspecs)
-       goto redo_dedup_check;
-
-      pspecs[n_pspecs++] = pspec;
+      for (i = 0; i < n_pspecs; i++)
+        {
+          if (pspecs[i] == pspec)
+            break;
+        }
+
+      if (i == n_pspecs) /* if no match was found */
+        pspecs[n_pspecs++] = pspec;
     }
   g_datalist_id_set_data (&object->qdata, context->quark_notify_queue, NULL);