diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c index 75944a902a..0f8053da86 100644 --- a/libs/gst/base/gstadapter.c +++ b/libs/gst/base/gstadapter.c @@ -737,7 +737,7 @@ done: GList * gst_adapter_take_list (GstAdapter * adapter, guint nbytes) { - GList *result = NULL, *tail = NULL; + GQueue queue = G_QUEUE_INIT; GstBuffer *cur; guint hsize, skip; @@ -753,15 +753,11 @@ gst_adapter_take_list (GstAdapter * adapter, guint nbytes) cur = gst_adapter_take_buffer (adapter, hsize); - if (result == NULL) { - result = tail = g_list_append (result, cur); - } else { - tail = g_list_append (tail, cur); - tail = g_list_next (tail); - } + g_queue_push_tail (&queue, cur); + nbytes -= hsize; } - return result; + return queue.head; } /**