summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY1
-rw-r--r--osd.c6
2 files changed, 6 insertions, 1 deletions
diff --git a/HISTORY b/HISTORY
index 52792848..9138fd39 100644
--- a/HISTORY
+++ b/HISTORY
@@ -7606,3 +7606,4 @@ Video Disk Recorder Revision History
- Fixed the description of the OSD drawing functions DrawEllipse() (the values -5...-8
for the Quadrants parameter are not implemented).
- Made cOsd::DestroyPixmap() "NULL proof".
+- Now deleting any previously allocated pixmaps in cOsd::SetAreas().
diff --git a/osd.c b/osd.c
index 73db4281..f6d2168a 100644
--- a/osd.c
+++ b/osd.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.c 2.36 2013/02/13 12:52:07 kls Exp $
+ * $Id: osd.c 2.37 2013/02/13 12:55:26 kls Exp $
*/
#include "osd.h"
@@ -1803,6 +1803,10 @@ eOsdError cOsd::SetAreas(const tArea *Areas, int NumAreas)
if (Result == oeOk) {
while (numBitmaps)
delete bitmaps[--numBitmaps];
+ for (int i = 0; i < pixmaps.Size(); i++) {
+ delete pixmaps[i];
+ pixmaps[i] = NULL;
+ }
width = height = 0;
isTrueColor = NumAreas == 1 && Areas[0].bpp == 32;
if (isTrueColor) {