aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-11-21 01:42:58 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-11-21 01:42:58 +0000
commit120bcf9214b7624886d07c2832060222551d2da1 (patch)
treeb45337711cf5721a170ad236ca19b6d19096f535 /lib
parent3dad856cbb3236686a1b154acf98be00c5a8ba62 (diff)
downloadenigma2-120bcf9214b7624886d07c2832060222551d2da1.tar.gz
enigma2-120bcf9214b7624886d07c2832060222551d2da1.zip
fix memleak in dvb subtitle code
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/subtitle.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/dvb/subtitle.cpp b/lib/dvb/subtitle.cpp
index 7ae49db5..f4b5b7e4 100644
--- a/lib/dvb/subtitle.cpp
+++ b/lib/dvb/subtitle.cpp
@@ -360,6 +360,13 @@ int eDVBSubtitleParser::subtitle_process_segment(__u8 *segment)
{
subtitle_region *p = page->regions->next;
//eDebug("delete region %d", page->regions->region_id);
+ while(page->regions->region_objects)
+ {
+ //eDebug("delete region object");
+ subtitle_region_object *ob = page->regions->region_objects->next;
+ delete page->regions->region_objects;
+ page->regions->region_objects = ob;
+ }
delete page->regions;
page->regions = p;
}
@@ -451,6 +458,7 @@ int eDVBSubtitleParser::subtitle_process_segment(__u8 *segment)
else if (region->region_version_number != region_version_number)
{
subtitle_region_object *objects = region->region_objects;
+ //eDebug("unequal version %p %p", objects, objects?objects->next:objects);
while (objects)
{
subtitle_region_object *n = objects->next;