Project

General

Profile

Bug #1902 ยป vdr-epgfixer-chan-does-not-exists-crash.patch

Anonymous, 08/22/2014 02:42 PM

View differences:

epgfixer/tools.c 2014-08-19 11:40:53.506863186 +0200
cSchedules *schedules = (cSchedules *)cSchedules::Schedules(SchedulesLock);
Lock();
while (schedules && (e = list->First()) != NULL) {
cSchedule *schedule = (cSchedule *)schedules->GetSchedule(Channels.GetByChannelID(e->GetChannelID()), true);
if (schedule) {
schedule->AddEvent(e->GetEvent());
EpgHandlers.SortSchedule(schedule);
EpgHandlers.DropOutdated(schedule, e->GetEvent()->StartTime(), e->GetEvent()->EndTime(), e->GetEvent()->TableID(), e->GetEvent()->Version());
list->Del(e);
}
tChannelID chid = e->GetChannelID();
cChannel *chan = Channels.GetByChannelID(chid);
if (!chan) {
isyslog("Channel %s not found !", *chid.ToString());
} else {
cSchedule *schedule = (cSchedule *)schedules->GetSchedule(chan, true);
if (schedule) {
schedule->AddEvent(e->GetEvent());
EpgHandlers.SortSchedule(schedule);
EpgHandlers.DropOutdated(schedule, e->GetEvent()->StartTime(), e->GetEvent()->EndTime(), e->GetEvent()->TableID(), e->GetEvent()->Version());
}
}
list->Del(e);
}
Unlock();
cCondWait::SleepMs(10);
}
    (1-1/1)