From 489b94444e96b8ea43aa929eac615471fcb9778e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 22 Mar 2011 11:04:20 +0100 Subject: [PATCH] multiqueue: Don't leak objects when flushing after dequeueing and before pushing the object --- plugins/elements/gstmultiqueue.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c index 3f1eef5..f285083 100644 --- a/plugins/elements/gstmultiqueue.c +++ b/plugins/elements/gstmultiqueue.c @@ -1075,7 +1075,7 @@ gst_multi_queue_loop (GstPad * pad) GstMultiQueueItem *item; GstDataQueueItem *sitem; GstMultiQueue *mq; - GstMiniObject *object; + GstMiniObject *object = NULL; guint32 newid; GstFlowReturn result; @@ -1170,6 +1170,7 @@ gst_multi_queue_loop (GstPad * pad) /* Try to push out the new object */ result = gst_single_queue_push_one (mq, sq, object); sq->srcresult = result; + object = NULL; if (result != GST_FLOW_OK && result != GST_FLOW_NOT_LINKED && result != GST_FLOW_UNEXPECTED) @@ -1183,6 +1184,9 @@ gst_multi_queue_loop (GstPad * pad) out_flushing: { + if (object) + gst_mini_object_unref (object); + /* Need to make sure wake up any sleeping pads when we exit */ GST_MULTI_QUEUE_MUTEX_LOCK (mq); compute_high_id (mq); -- 2.7.4