queuearray: fix gst_queue_array_find()
authorAlexander Schrab <alexas@axis.com>
Mon, 28 Jan 2013 10:05:28 +0000 (11:05 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Wed, 30 Jan 2013 11:24:55 +0000 (11:24 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=692691

libs/gst/base/gstqueuearray.c

index 3d8ae21..e2b9fc6 100644 (file)
@@ -303,9 +303,9 @@ gst_queue_array_find (GstQueueArray * array, GCompareFunc func, gpointer data)
   guint i;
 
   /* Scan from head to tail */
-  for (i = array->head; i < array->length; i = (i + 1) % array->size)
-    if (func (array->array[i], data) == 0)
-      return i;
+  for (i = 0; i < array->length; i++)
+    if (func (array->array[(i + array->head) % array->size], data) == 0)
+      return (i + array->head) % array->size;
   return -1;
 }