diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 21d4ec10..5c047227 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2018,6 +2018,8 @@ Ville Skytt be escaped 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 reporting a possible crash when shutting down VDR while subtitles are being + displayed Steffen Beyer for fixing setting the colored button help after deleting a recording in case the next diff --git a/HISTORY b/HISTORY index 858d8783..f48a99d2 100644 --- a/HISTORY +++ b/HISTORY @@ -7872,3 +7872,5 @@ Video Disk Recorder Revision History - No longer trying to delete old recordings in AssertFreeDiskSpace() if the given Priority is less than 1. - 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ä). diff --git a/device.c b/device.c index 7ff24edd..a5afcfcc 100644 --- a/device.c +++ b/device.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * 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" @@ -118,6 +118,8 @@ cDevice::~cDevice() DetachAllReceivers(); delete liveSubtitle; delete dvbSubtitleConverter; + if (this == primaryDevice) + primaryDevice = NULL; } bool cDevice::WaitForAllDevicesReady(int Timeout) @@ -362,7 +364,6 @@ void cDevice::SetCamSlot(cCamSlot *CamSlot) void cDevice::Shutdown(void) { deviceHooks.Clear(); - primaryDevice = NULL; for (int i = 0; i < numDevices; i++) { delete device[i]; device[i] = NULL;