diff options
author | Michael Rubinstein <mrubinstein@weather.com> | 2013-05-25 15:25:56 +0200 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2013-05-25 15:49:21 +0200 |
commit | e6c8224609731f0cba270a28b92a4676f3246a2e (patch) | |
tree | f063f34239e40f06d2269afb4c3ca461ceebbb00 | |
parent | 8303561bd97114b4f8e58987bab5f3903858ac2f (diff) | |
download | gstreamer-plugins-bad-e6c8224609731f0cba270a28b92a4676f3246a2e.tar.gz |
mpegtsdemux: Free memory behind GString if we don't use it
https://bugzilla.gnome.org/show_bug.cgi?id=700903
-rw-r--r-- | gst/mpegtsdemux/mpegtsbase.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c index 99215d789..02fa53bae 100644 --- a/gst/mpegtsdemux/mpegtsbase.c +++ b/gst/mpegtsdemux/mpegtsbase.c @@ -337,12 +337,13 @@ mpegts_get_descriptor_from_stream (MpegTSBaseStream * stream, guint8 tag) for (i = 0; i < descriptors->n_values; i++) { GValue *value = g_value_array_get_nth (descriptors, i); GString *desc = g_value_dup_boxed (value); - if (DESC_TAG (desc->str) == tag) { + if (DESC_TAG (desc->str) == tag && !retval) { retval = (guint8 *) desc->str; g_string_free (desc, FALSE); break; - } else - g_string_free (desc, FALSE); + } else { + g_string_free (desc, TRUE); + } } g_value_array_free (descriptors); @@ -404,12 +405,12 @@ mpegts_get_descriptor_from_program (MpegTSBaseProgram * program, guint8 tag) for (i = 0; i < descriptors->n_values; i++) { GValue *value = g_value_array_get_nth (descriptors, i); GString *desc = g_value_dup_boxed (value); - if (DESC_TAG (desc->str) == tag) { + if (DESC_TAG (desc->str) == tag && !retval) { retval = (guint8 *) desc->str; g_string_free (desc, FALSE); break; } else - g_string_free (desc, FALSE); + g_string_free (desc, TRUE); } g_value_array_free (descriptors); |