Fixed a possible crash when shutting down VDR while subtitles are being displayed

This commit is contained in:
Klaus Schmidinger 2013-08-22 10:33:59 +02:00
parent 58c9fdc8c5
commit 99321b371a
3 changed files with 7 additions and 2 deletions

View File

@ -2018,6 +2018,8 @@ Ville Skytt
be escaped be escaped
for changing the template for PLGCFG to $(CONFDIR)/plugins.mk for changing the template for PLGCFG to $(CONFDIR)/plugins.mk
for updating the help and man page entry about the location of the epg.data file for updating the help and man page entry about the location of the epg.data file
for reporting a possible crash when shutting down VDR while subtitles are being
displayed
Steffen Beyer <cpunk@reactor.de> Steffen Beyer <cpunk@reactor.de>
for fixing setting the colored button help after deleting a recording in case the next for fixing setting the colored button help after deleting a recording in case the next

View File

@ -7872,3 +7872,5 @@ Video Disk Recorder Revision History
- No longer trying to delete old recordings in AssertFreeDiskSpace() if the given - No longer trying to delete old recordings in AssertFreeDiskSpace() if the given
Priority is less than 1. Priority is less than 1.
- Fixed handling LIRC events in case repeated events are lost. - Fixed handling LIRC events in case repeated events are lost.
- Fixed a possible crash when shutting down VDR while subtitles are being displayed
(reported by Ville Skyttä).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.c 3.2 2013/06/01 11:34:11 kls Exp $ * $Id: device.c 3.3 2013/08/22 10:28:55 kls Exp $
*/ */
#include "device.h" #include "device.h"
@ -118,6 +118,8 @@ cDevice::~cDevice()
DetachAllReceivers(); DetachAllReceivers();
delete liveSubtitle; delete liveSubtitle;
delete dvbSubtitleConverter; delete dvbSubtitleConverter;
if (this == primaryDevice)
primaryDevice = NULL;
} }
bool cDevice::WaitForAllDevicesReady(int Timeout) bool cDevice::WaitForAllDevicesReady(int Timeout)
@ -362,7 +364,6 @@ void cDevice::SetCamSlot(cCamSlot *CamSlot)
void cDevice::Shutdown(void) void cDevice::Shutdown(void)
{ {
deviceHooks.Clear(); deviceHooks.Clear();
primaryDevice = NULL;
for (int i = 0; i < numDevices; i++) { for (int i = 0; i < numDevices; i++) {
delete device[i]; delete device[i];
device[i] = NULL; device[i] = NULL;