From ac60bd7141b141ca1b4ee11b2471ccb24688a068 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 25 Jan 2005 18:22:46 +0100 Subject: [PATCH] Now setting primaryDevice = NULL before deleting the devices in cDevice::Shutdown() --- CONTRIBUTORS | 4 ++++ HISTORY | 5 ++++- device.c | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 341fa9d7..14f3b012 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1233,3 +1233,7 @@ Walter Koch Rolf Groppe for suggesting to fall back to 'stereo' when switching channels in case the user had switched to 'left' or 'right' + +Wolfgang Rohdewald + for pointing out that primaryDevice = NULL should be done before deleting the devices + in cDevice::Shutdown() diff --git a/HISTORY b/HISTORY index b71e8aba..de075740 100644 --- a/HISTORY +++ b/HISTORY @@ -3333,8 +3333,11 @@ Video Disk Recorder Revision History - Added PlayPes(NULL, 0) to cTransfer::Action() when clearing the transfer buffer to avoid overflows (thanks to Marco Schlüßler for pointing this out). -2005-01-23: Version 1.3.20 +2005-01-25: Version 1.3.20 - Fixed displaying the "Audio" menu with the "Green" button from the "Main" menu in case there is only one audio track (thanks to Sascha Volkenandt for reporting this one). +- Now setting primaryDevice = NULL before deleting the devices in cDevice::Shutdown() + to avoid problems in case other threads access it (thanks to Wolfgang Rohdewald for + pointing this out). diff --git a/device.c b/device.c index 9214eead..723d23df 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 1.78 2005/01/23 14:15:00 kls Exp $ + * $Id: device.c 1.79 2005/01/25 18:19:30 kls Exp $ */ #include "device.h" @@ -281,11 +281,11 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool *NeedsDe void cDevice::Shutdown(void) { + primaryDevice = NULL; for (int i = 0; i < numDevices; i++) { delete device[i]; device[i] = NULL; } - primaryDevice = NULL; } bool cDevice::GrabImage(const char *FileName, bool Jpeg, int Quality, int SizeX, int SizeY)