diff options
author | Santiago Carot-Nemesio <sancane@gmail.com> | 2015-06-09 16:33:39 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-06-10 10:24:35 +0200 |
commit | 9fb4d5df20fe34c6096a3556dbe985f4775f1914 (patch) | |
tree | 38fdf5402baecb9a909071de6127cc2d99a6d4cd /gst | |
parent | 5db08a8b89d0b9f2db16b0dff315242ae0b59c1f (diff) | |
download | gstreamer-plugins-bad-9fb4d5df20fe34c6096a3556dbe985f4775f1914.tar.gz |
liveadder: Fix memory leaks iterating over pads
Rebased for latest master by Nicolas Huet <nicolas.huet@parrot.com>.
https://bugzilla.gnome.org/show_bug.cgi?id=745748
Diffstat (limited to 'gst')
-rw-r--r-- | gst/liveadder/liveadder.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/gst/liveadder/liveadder.c b/gst/liveadder/liveadder.c index f060cde99..e456ff850 100644 --- a/gst/liveadder/liveadder.c +++ b/gst/liveadder/liveadder.c @@ -604,19 +604,15 @@ static gboolean gst_live_adder_query_pos_dur (GstLiveAdder * adder, GstFormat format, gboolean position, gint64 * outvalue) { + GValue item = { 0 }; gint64 max = G_MININT64; gboolean res = TRUE; GstIterator *it; gboolean done = FALSE; - it = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (adder)); while (!done) { - GstIteratorResult ires; - GValue item = { 0 }; - - ires = gst_iterator_next (it, &item); - switch (ires) { + switch (gst_iterator_next (it, &item)) { case GST_ITERATOR_DONE: done = TRUE; break; @@ -647,6 +643,7 @@ gst_live_adder_query_pos_dur (GstLiveAdder * adder, GstFormat format, max = value; } } + g_value_reset (&item); break; } case GST_ITERATOR_RESYNC: @@ -659,6 +656,8 @@ gst_live_adder_query_pos_dur (GstLiveAdder * adder, GstFormat format, break; } } + + g_value_unset (&item); gst_iterator_free (it); if (res) |