From c276c6883d75d8c4402cd00f63c961213bbcbbf1 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Mon, 4 Jan 2021 14:58:59 +0100 Subject: [PATCH] Fixed initializing the cChannel::schedule pointer after reading EPG data with PUTE --- CONTRIBUTORS | 2 ++ HISTORY | 2 ++ epg.c | 9 +++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 72837314..0926d4c0 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2941,6 +2941,8 @@ Manuel Reimer 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 for reporting a bug in writing the PCR pid into the PMT in diff --git a/HISTORY b/HISTORY index 50d1c4f2..ee93429a 100644 --- a/HISTORY +++ b/HISTORY @@ -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). diff --git a/epg.c b/epg.c index 5d2980c9..206b8ee5 100644 --- a/epg.c +++ b/epg.c @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider and Rolf Hakenes . * - * $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; }