summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorSantiago Carot-Nemesio <sancane@gmail.com>2015-06-09 16:33:39 +0200
committerSebastian Dröge <sebastian@centricular.com>2015-06-10 10:24:35 +0200
commit9fb4d5df20fe34c6096a3556dbe985f4775f1914 (patch)
tree38fdf5402baecb9a909071de6127cc2d99a6d4cd /gst
parent5db08a8b89d0b9f2db16b0dff315242ae0b59c1f (diff)
downloadgstreamer-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.c11
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)