Eliminate a seqfault in cRecManager::DeleteSearchTimer

This commit is contained in:
kamel5 2019-03-30 16:49:50 +01:00
parent 060089548a
commit dfb2c2b031
1 changed files with 10 additions and 22 deletions

View File

@ -543,45 +543,33 @@ void cRecManager::DeleteSearchTimer(cTVGuideSearchTimer *searchTimer, bool delTi
return;
int searchTimerID = searchTimer->GetID();
if (delTimers) {
cTimers* timers;
#if VDRVERSNUM >= 20301
{
LOCK_TIMERS_WRITE;
cTimer *timer = Timers->First();
timers = Timers;
}
#else
cTimer *timer = Timers.First();
timers = &Timers;
#endif
cTimer *timer = timers->First();
while(timer) {
if (!timer->Recording()) {
char* searchID = GetAuxValue(timer, "s-id");
if (searchID) {
if (searchTimerID == atoi(searchID)) {
#if VDRVERSNUM >= 20301
cTimer* timerNext = Timers->Next(timer);
#else
cTimer* timerNext = Timers.Next(timer);
#endif
cTimer* timerNext = timers->Next(timer);
DeleteTimer(timer);
timer = timerNext;
} else {
#if VDRVERSNUM >= 20301
timer = Timers->Next(timer);
#else
timer = Timers.Next(timer);
#endif
timer = timers->Next(timer);
}
free(searchID);
} else {
#if VDRVERSNUM >= 20301
timer = Timers->Next(timer);
#else
timer = Timers.Next(timer);
#endif
timer = timers->Next(timer);
}
} else {
#if VDRVERSNUM >= 20301
timer = Timers->Next(timer);
#else
timer = Timers.Next(timer);
#endif
timer = timers->Next(timer);
}
}
}