diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a24ade4c..d31bb8a0 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -415,6 +415,7 @@ Oliver Endriss for helping to test and debug the new channel source and DiSEqC handling for reporting a bug when pressing the "Blue" button in the main menu without having displayed it + for helping to debug a crash when closing down with remote control plugins Reinhard Walter Buchner for adding some satellites to 'sources.conf' diff --git a/HISTORY b/HISTORY index 957d30e5..71872b43 100644 --- a/HISTORY +++ b/HISTORY @@ -1597,3 +1597,5 @@ Video Disk Recorder Revision History - Fixed switching the video format in the Setup/DVB menu (thanks to Uwe Scheffler for reporting this one). - Reactivated full handling of second audio PID (even in 'Transfer Mode'). +- Fixed a crash when closing down with remote control plugins (thanks to Oliver + Endriss helping to debug this one). diff --git a/remote.c b/remote.c index ffdfa18a..05ce6063 100644 --- a/remote.c +++ b/remote.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: remote.c 1.28 2002/09/29 12:51:26 kls Exp $ + * $Id: remote.c 1.29 2002/10/12 15:22:08 kls Exp $ */ #include "remote.h" @@ -34,8 +34,7 @@ cCondVar cRemote::keyPressed; cRemote::cRemote(const char *Name) { - if (Name) - name = strdup(Name); + name = Name ? strdup(Name) : NULL; Remotes.Add(this); } diff --git a/vdr.c b/vdr.c index 7e22477b..c1e0c11a 100644 --- a/vdr.c +++ b/vdr.c @@ -22,7 +22,7 @@ * * The project's page is at http://www.cadsoft.de/people/kls/vdr * - * $Id: vdr.c 1.125 2002/10/06 10:25:04 kls Exp $ + * $Id: vdr.c 1.126 2002/10/12 15:22:29 kls Exp $ */ #include @@ -634,11 +634,12 @@ int main(int argc, char *argv[]) cControl::Shutdown(); delete Interface; cOsd::Shutdown(); - PluginManager.Shutdown(true); + Remotes.Clear(); Setup.CurrentChannel = cDevice::CurrentChannel(); Setup.CurrentVolume = cDevice::CurrentVolume(); Setup.Save(); cDevice::Shutdown(); + PluginManager.Shutdown(true); if (WatchdogTimeout > 0) dsyslog("max. latency time %d seconds", MaxLatencyTime); isyslog("exiting");