Fixed initializing the cChannel::schedule pointer after reading EPG data with PUTE

This commit is contained in:
Klaus Schmidinger 2021-01-04 14:58:59 +01:00
parent 163945045d
commit c276c6883d
3 changed files with 11 additions and 2 deletions

View File

@ -2941,6 +2941,8 @@ Manuel Reimer <Manuel.Reimer@gmx.de>
for suggesting to make the SVDRP command DELC accept a channel id
for reporting a crash in the SVDRP command CLRE in case a non-existing channel
number is given
for reporting that LSTE doesn't work after PUTE in case a channel didn't already
have EPG data
Rene van den Braken <rene@vandenbraken.name>
for reporting a bug in writing the PCR pid into the PMT in

View File

@ -9571,3 +9571,5 @@ Video Disk Recorder Revision History
- Fixed a crash in the SVDRP command CLRE in case a non-existing channel number is
given (reported by Manuel Reimer).
- Fixed handling $(PKG_CONFIG) in newplugin (thanks to Winfried Köhler).
- Fixed initializing the cChannel::schedule pointer after reading EPG data with PUTE
(reported by Manuel Reimer).

9
epg.c
View File

@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
* $Id: epg.c 4.9 2019/05/20 09:55:22 kls Exp $
* $Id: epg.c 4.9.1.1 2021/01/04 14:58:58 kls Exp $
*/
#include "epg.h"
@ -1311,8 +1311,13 @@ bool cSchedules::Read(FILE *f)
fclose(f);
if (result) {
// Initialize the channels' schedule pointers, so that the first WhatsOn menu will come up faster:
for (cChannel *Channel = Channels->First(); Channel; Channel = Channels->Next(Channel))
for (cChannel *Channel = Channels->First(); Channel; Channel = Channels->Next(Channel)) {
if (const cSchedule *Schedule = Channel->schedule) {
if (!Schedule->ChannelID().Valid()) // this is the DummySchedule
Channel->schedule = NULL;
}
Schedules->GetSchedule(Channel);
}
}
return result;
}