1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed a memory leak in cSubtitleRegion::UpdateTextData()

This commit is contained in:
Klaus Schmidinger 2012-03-13 15:38:00 +01:00
parent 2781c337b1
commit d62f710413
2 changed files with 7 additions and 6 deletions

View File

@ -7042,3 +7042,4 @@ Video Disk Recorder Revision History
the previous value of 25.75 MB/min is taken. the previous value of 25.75 MB/min is taken.
- No longer using GetFont() (which is not thread safe) in the 'osddemo' plugin. - No longer using GetFont() (which is not thread safe) in the 'osddemo' plugin.
- No longer using GetFont() (which is not thread safe) in cSubtitleRegion::UpdateTextData(). - No longer using GetFont() (which is not thread safe) in cSubtitleRegion::UpdateTextData().
- Fixed a memory leak in cSubtitleRegion::UpdateTextData().

View File

@ -7,7 +7,7 @@
* Original author: Marco Schluessler <marco@lordzodiac.de> * Original author: Marco Schluessler <marco@lordzodiac.de>
* With some input from the "subtitle plugin" by Pekka Virtanen <pekka.virtanen@sci.fi> * With some input from the "subtitle plugin" by Pekka Virtanen <pekka.virtanen@sci.fi>
* *
* $Id: dvbsubtitle.c 2.29 2012/03/13 15:30:47 kls Exp $ * $Id: dvbsubtitle.c 2.30 2012/03/13 15:37:03 kls Exp $
*/ */
@ -492,12 +492,12 @@ void cSubtitleRegion::UpdateTextData(cSubtitleClut *Clut)
for (cSubtitleObject *so = objects.First(); so && palette; so = objects.Next(so)) { for (cSubtitleObject *so = objects.First(); so && palette; so = objects.Next(so)) {
if (Utf8StrLen(so->TextData()) > 0) { if (Utf8StrLen(so->TextData()) > 0) {
cFont *font = cFont::CreateFont(Setup.FontOsd, Setup.FontOsdSize); cFont *font = cFont::CreateFont(Setup.FontOsd, Setup.FontOsdSize);
cBitmap *tmp = new cBitmap(font->Width(so->TextData()), font->Height(), Depth()); cBitmap tmp(font->Width(so->TextData()), font->Height(), Depth());
double factor = (double)lineHeight / font->Height(); double factor = (double)lineHeight / font->Height();
tmp->DrawText(0, 0, so->TextData(), palette->Color(so->ForegroundPixelCode()), palette->Color(so->BackgroundPixelCode()), font); tmp.DrawText(0, 0, so->TextData(), palette->Color(so->ForegroundPixelCode()), palette->Color(so->BackgroundPixelCode()), font);
tmp = tmp->Scaled(factor, factor, true); cBitmap *scaled = tmp.Scaled(factor, factor, true);
DrawBitmap(so->X(), so->Y(), *tmp); DrawBitmap(so->X(), so->Y(), *scaled);
DELETENULL(tmp); delete scaled;
delete font; delete font;
} }
} }