summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Wieninger <cwieninger (at) gmx (dot) de>2008-11-14 19:10:53 +0100
committerChristian Wieninger <cwieninger (at) gmx (dot) de>2008-11-14 19:10:53 +0100
commitbd6e1f64ce8afa380286700945d71df29654f59c (patch)
tree921c6994c0c18a9ef517c0499afb9cdbb503a854
parent1444bd7795170d841f919daea998ea496a5d77c6 (diff)
downloadvdr-plugin-epgsearch-bd6e1f64ce8afa380286700945d71df29654f59c.tar.gz
vdr-plugin-epgsearch-bd6e1f64ce8afa380286700945d71df29654f59c.tar.bz2
fixed a segfault occurring when navigating to a userdefined epg menu that has expired in the meantime, thanks to Mike Constabel for reporting
-rw-r--r--HISTORY2
-rw-r--r--HISTORY.DE2
-rw-r--r--menu_whatson.c22
3 files changed, 15 insertions, 11 deletions
diff --git a/HISTORY b/HISTORY
index 9f31582..4d2bee7 100644
--- a/HISTORY
+++ b/HISTORY
@@ -30,6 +30,8 @@ fixes:
- fixed line breaks in SVDRP command LSTT, thanks to Andreas Mair for providing a
patch
- improved response time when canceling the search timer thread
+- fixed a segfault occurring when navigating to a userdefined epg menu that has expired
+ in the meantime, thanks to Mike Constabel for reporting
2008-04-29: Version 0.9.24
diff --git a/HISTORY.DE b/HISTORY.DE
index 579b1ed..e67373b 100644
--- a/HISTORY.DE
+++ b/HISTORY.DE
@@ -31,6 +31,8 @@ fixes:
Beenden zu vermeiden, danke e9hack@vdrportal für den Patch
- Zeilenumbrüche im SVDRP-Befehl LSTT korrigiert, Danke an Andreas Mair für einen Patch
- Antwortzeit beim Abbruch des Suchtimer-Threads verbessert
+- Absturz beim Navigieren zu benutzerdef. EPG-Menüs behoben, die zwischenzeitlich schon
+ in der Vergangenheit lagen, Danke an Mike Constabel für den Hinweis
2008-04-29: Version 0.9.24
diff --git a/menu_whatson.c b/menu_whatson.c
index 5993789..0af9cf7 100644
--- a/menu_whatson.c
+++ b/menu_whatson.c
@@ -334,6 +334,7 @@ void cMenuWhatsOnSearch::LoadSchedules()
// time_t SeekTime;
cString szTitle;
cShowMode* mode = GetShowMode(currentShowMode);
+ if (!mode) return;
if (shiftTime != 0)
{
@@ -359,17 +360,14 @@ void cMenuWhatsOnSearch::LoadSchedules()
}
else
{
- if (mode)
- {
- seekTime = GetTimeT(mode->GetTime());
- if (seekTime < time(NULL) && currentShowMode != showNow && currentShowMode != showNext)
- {
- seekTime += HOURS2SECS(24);
- szTitle = cString::sprintf("%s - %s (%s)", tr("Overview"), mode->GetDescription(), *WeekDayName(seekTime));
- }
- else
- szTitle = cString::sprintf("%s - %s", tr("Overview"), mode->GetDescription());
- }
+ seekTime = GetTimeT(mode->GetTime());
+ if (seekTime < time(NULL) && currentShowMode != showNow && currentShowMode != showNext)
+ {
+ seekTime += HOURS2SECS(24);
+ szTitle = cString::sprintf("%s - %s (%s)", tr("Overview"), mode->GetDescription(), *WeekDayName(seekTime));
+ }
+ else
+ szTitle = cString::sprintf("%s - %s", tr("Overview"), mode->GetDescription());
}
SetTitle(szTitle);
@@ -460,6 +458,8 @@ showMode cMenuWhatsOnSearch::GetNextMode()
else
nextShowMode = ModeNext->GetMode();
}
+ else // no mode found? fall back to 'now'
+ nextShowMode = showNow;
return nextShowMode;
}