mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed a memory leak in cSubtitleRegion::UpdateTextData()
This commit is contained in:
		
							
								
								
									
										1
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								HISTORY
									
									
									
									
									
								
							@@ -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().
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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;
 | 
				
			||||||
         }
 | 
					         }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user