diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 683dcdaa..2eeb9e3a 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1287,6 +1287,7 @@ Olaf Titz for fixing some typos in the Makefile's 'font' target for reporting a problem and some advice in fixing a possible freeze in pause mode in case a device's PlayPesPacket() function permanently returns 0 + for reporting excess memory consumption due to duplicate components in EPG events Darren Salt for pointing out that the '-' and 'ö' characters need to be escaped in the man diff --git a/HISTORY b/HISTORY index 180b19de..43dfbe31 100644 --- a/HISTORY +++ b/HISTORY @@ -3646,3 +3646,5 @@ Video Disk Recorder Revision History - Removed the fix for handling VPS timers, so that they only record if the event they are assigned to actually has the given VPS time. This has caused repeating VPS timers to stop recording prematurely. +- Avoiding duplicate components in EPG events when reading epg.data or in the + PUTE SVDRP command (thanks to Olaf Titz for reporting this one). diff --git a/epg.c b/epg.c index 05c6d742..038f9c60 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 1.35 2005/06/05 12:17:15 kls Exp $ + * $Id: epg.c 1.36 2005/07/30 14:44:54 kls Exp $ */ #include "epg.h" @@ -298,6 +298,8 @@ bool cEvent::Read(FILE *f, cSchedule *Schedule) if (n == 3 || n == 4) { Event = (cEvent *)Schedule->GetEvent(EventID, StartTime); cEvent *newEvent = NULL; + if (Event) + DELETENULL(Event->components); if (!Event) Event = newEvent = new cEvent(EventID); if (Event) {