summaryrefslogtreecommitdiff
path: root/gst/dvbsuboverlay
diff options
context:
space:
mode:
authorJanne Grunau <janne.grunau@collabora.co.uk>2011-01-04 13:51:21 +0000
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2011-01-04 13:51:55 +0000
commit9f02f693de1dbda6b0aeffe592672f861861b774 (patch)
tree603f109953fe6550ee2c4c0e58e9c19c6c57c413 /gst/dvbsuboverlay
parent3bb1d2937f2c4701268373842bd971fffbd93f4e (diff)
downloadgstreamer-plugins-bad-9f02f693de1dbda6b0aeffe592672f861861b774.tar.gz
dvbsuboverlay: fix two minor deinitialization memory leaks
Diffstat (limited to 'gst/dvbsuboverlay')
-rw-r--r--gst/dvbsuboverlay/dvb-sub.c5
-rw-r--r--gst/dvbsuboverlay/gstdvbsuboverlay.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/gst/dvbsuboverlay/dvb-sub.c b/gst/dvbsuboverlay/dvb-sub.c
index eb6810658..435de92a8 100644
--- a/gst/dvbsuboverlay/dvb-sub.c
+++ b/gst/dvbsuboverlay/dvb-sub.c
@@ -1352,6 +1352,11 @@ dvb_sub_free (DvbSub * sub)
/* TODO: Add deinitalization code here */
/* FIXME: Clear up region_list contents */
delete_state (sub);
+ while (sub->display_list) {
+ DVBSubRegionDisplay *tmp = sub->display_list->next;
+ g_slice_free (DVBSubRegionDisplay, sub->display_list);
+ sub->display_list = tmp;
+ }
g_string_free (sub->pes_buffer, TRUE);
g_slice_free (DvbSub, sub);
}
diff --git a/gst/dvbsuboverlay/gstdvbsuboverlay.c b/gst/dvbsuboverlay/gstdvbsuboverlay.c
index ca6789a87..dc2b2d473 100644
--- a/gst/dvbsuboverlay/gstdvbsuboverlay.c
+++ b/gst/dvbsuboverlay/gstdvbsuboverlay.c
@@ -167,6 +167,10 @@ gst_dvbsub_overlay_flush_subtitles (GstDVBSubOverlay * render)
dvb_subtitles_free (subs);
}
+ if (render->current_subtitle)
+ dvb_subtitles_free (render->current_subtitle);
+ render->current_subtitle = NULL;
+
if (render->dvb_sub)
dvb_sub_free (render->dvb_sub);
@@ -251,6 +255,10 @@ gst_dvbsub_overlay_finalize (GObject * object)
}
g_queue_free (overlay->pending_subtitles);
+ if (overlay->current_subtitle)
+ dvb_subtitles_free (overlay->current_subtitle);
+ overlay->current_subtitle = NULL;
+
if (overlay->dvb_sub)
dvb_sub_free (overlay->dvb_sub);