diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-11-21 01:42:58 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-11-21 01:42:58 +0000 |
| commit | 120bcf9214b7624886d07c2832060222551d2da1 (patch) | |
| tree | b45337711cf5721a170ad236ca19b6d19096f535 /lib/dvb/subtitle.cpp | |
| parent | 3dad856cbb3236686a1b154acf98be00c5a8ba62 (diff) | |
| download | enigma2-120bcf9214b7624886d07c2832060222551d2da1.tar.gz enigma2-120bcf9214b7624886d07c2832060222551d2da1.zip | |
fix memleak in dvb subtitle code
Diffstat (limited to 'lib/dvb/subtitle.cpp')
| -rw-r--r-- | lib/dvb/subtitle.cpp | 8 |
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; |
