From cf69ce1df660235c6c8013241311ce79782274f1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 1 Nov 2011 14:17:21 +0000 Subject: [PATCH] adapter: simplify gst_adapter_take_list() Use a stack-allocated GQueue to assemble our GList. --- libs/gst/base/gstadapter.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c index 75944a9..0f8053d 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; } /** -- 2.7.4