Fixed a possible segfault if VDR gets terminated while a message is displayed

This commit is contained in:
Klaus Schmidinger 2007-01-04 13:11:52 +01:00
parent e72bff8938
commit dcff08512e
5 changed files with 21 additions and 4 deletions

View File

@ -1477,6 +1477,7 @@ Udo Richter <udo_richter@gmx.de>
false and not actually kill the thread if the special value -1 is given
or fixing a possible segfault in cSkins::Message()
for some hints on how to improve handling cPluginManager::Active()
for fixing a possible segfault if VDR gets terminated while a message is displayed
Sven Kreiensen <svenk@kammer.uni-hannover.de>
for his help in keeping 'channels.conf.terr' up to date

View File

@ -5015,3 +5015,8 @@ Video Disk Recorder Revision History
- Added a compatibility define for 'uint64' to tools.h, so that existing
plugins don't need to be modified immediately (reported by Suur Karu).
This will be removed in version 1.5.
2007-01-04: Version 1.4.4-3
- Fixed a possible segfault if VDR gets terminated while a message is displayed
(thanks to Udo Richter).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.h 1.280 2006/12/03 16:44:29 kls Exp $
* $Id: config.h 1.281 2007/01/04 13:08:55 kls Exp $
*/
#ifndef __CONFIG_H
@ -21,7 +21,7 @@
// VDR's own version number:
#define VDRVERSION "1.4.4-2"
#define VDRVERSION "1.4.4-3"
#define VDRVERSNUM 10404 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number:

11
skins.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: skins.c 1.12 2006/12/01 13:32:37 kls Exp $
* $Id: skins.c 1.13 2007/01/04 13:08:55 kls Exp $
*/
#include "skins.h"
@ -358,3 +358,12 @@ void cSkins::Flush(void)
if (cSkinDisplay::Current())
cSkinDisplay::Current()->Flush();
}
void cSkins::Clear(void)
{
if (displayMessage) {
delete displayMessage;
displayMessage = NULL;
}
cList<cSkin>::Clear();
}

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: skins.h 1.14 2006/06/03 10:21:45 kls Exp $
* $Id: skins.h 1.15 2007/01/04 13:08:55 kls Exp $
*/
#ifndef __SKINS_H
@ -360,6 +360,8 @@ public:
///< Processes the first queued message, if any.
void Flush(void);
///< Flushes the currently active cSkinDisplay, if any.
virtual void Clear(void);
///< Free up all registered skins
};
extern cSkins Skins;