mpegtsdemux: Free memory behind GString if we don't use it

https://bugzilla.gnome.org/show_bug.cgi?id=700903
This commit is contained in:
Michael Rubinstein 2013-05-25 15:25:56 +02:00 committed by Sebastian Dröge
parent 8303561bd9
commit e6c8224609

View file

@ -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);