diff options
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | HISTORY.DE | 1 | ||||
-rw-r--r-- | epgsearchext.c | 9 | ||||
-rw-r--r-- | menu_dirselect.c | 9 | ||||
-rw-r--r-- | menu_event.c | 9 |
5 files changed, 11 insertions, 18 deletions
@@ -18,6 +18,7 @@ new: - Commit menu_category_recsdone.diff by tomas & louis @vdr-portal.de http://www.vdr-portal.de/board1-news/board2-vdr-news/p1271995-skindesigner-1-0-0-neuer-default-skin-estuary4vdr/#post1271995 - Commit 0001-revert-seperate-status-thread.diff by TomJoad@vdr-portal.de +- Commit 0002-fix-incorrect-lock-sequences.diff by TomJoad@vdr-portal.de http://www.vdr-portal.de/board17-developer/board21-vdr-plugins/p1291452-epgsearch-f%C3%BCr-vdr-2-3-x/#post1291452 2013-03-xx; Version 1.0.1 - maintenance release @@ -18,6 +18,7 @@ neu: - Anwenden menu_category_recsdone.diff von tomas & louis @vdr-portal.de http://www.vdr-portal.de/board1-news/board2-vdr-news/p1271995-skindesigner-1-0-0-neuer-default-skin-estuary4vdr/#post1271995 - Anwenden 0001-revert-seperate-status-thread.diff von TomJoad@vdr-portal.de +- Anwenden 0002-fix-incorrect-lock-sequences.diff von TomJoad@vdr-portal.de http://www.vdr-portal.de/board17-developer/board21-vdr-plugins/p1291452-epgsearch-f%C3%BCr-vdr-2-3-x/#post1291452 2013-03-xx: Version 1.0.1 - Maintenance Release diff --git a/epgsearchext.c b/epgsearchext.c index 844c789..28ea0b5 100644 --- a/epgsearchext.c +++ b/epgsearchext.c @@ -1025,10 +1025,13 @@ cSearchResults* cSearchExt::Run(int PayTVMode, bool inspectTimerMargin, int eval const cSchedules *schedules; #if VDRVERSNUM > 20300 + LOCK_CHANNELS_READ; // Channels must be locked first + const cChannels *vdrchannels = Channels; LOCK_SCHEDULES_READ; schedules = Schedules; #else cSchedulesLock schedulesLock; + cChannels *vdrchannels = &Channels; schedules = cSchedules::Schedules(schedulesLock); #endif if(!schedules) { @@ -1048,12 +1051,6 @@ cSearchResults* cSearchExt::Run(int PayTVMode, bool inspectTimerMargin, int eval cSearchResults* pBlacklistResults = GetBlacklistEvents(inspectTimerMargin?MarginStop:0); int counter = 0; -#if VDRVERSNUM > 20300 - LOCK_CHANNELS_READ; - const cChannels *vdrchannels = Channels; -#else - cChannels *vdrchannels = &Channels; -#endif while (Schedule) { const cChannel* channel = vdrchannels->GetByChannelID(Schedule->ChannelID(),true,true); if (!channel) diff --git a/menu_dirselect.c b/menu_dirselect.c index 3064c09..5bbcb6a 100644 --- a/menu_dirselect.c +++ b/menu_dirselect.c @@ -133,9 +133,12 @@ void cMenuDirSelect::CreateDirSet(bool extraDirs) // add distinct directories from current recordings #if VDRVERSNUM > 20300 + LOCK_TIMERS_READ; + const cTimers *vdrtimers = Timers; LOCK_RECORDINGS_READ; const cRecordings *vdrrecordings = Recordings; #else + const cTimers *vdrtimers = &Timers; cRecordings *vdrrecordings = &Recordings; if (Recordings.Count() == 0) Recordings.Load(); @@ -162,12 +165,6 @@ void cMenuDirSelect::CreateDirSet(bool extraDirs) } } // add distinct directories from current timers -#if VDRVERSNUM > 20300 - LOCK_TIMERS_READ; - const cTimers *vdrtimers = Timers; -#else - const cTimers *vdrtimers = &Timers; -#endif for (const cTimer *timer = vdrtimers->First(); timer; timer = vdrtimers->Next(timer)) { char* dir = strdup(timer->File()); diff --git a/menu_event.c b/menu_event.c index 7c29114..d9c92f7 100644 --- a/menu_event.c +++ b/menu_event.c @@ -85,9 +85,12 @@ void cMenuEventSearch::Set() if (event) { #if VDRVERSNUM > 20300 + LOCK_TIMERS_READ; + const cTimers *vdrtimers = Timers; LOCK_CHANNELS_READ; const cChannels *vdrchannels = Channels; #else + cTimers *vdrtimers = &Timers; cChannels *vdrchannels = &Channels; #endif const cChannel *channel = vdrchannels->GetByChannelID(event->ChannelID(), true, true); @@ -102,12 +105,6 @@ void cMenuEventSearch::Set() cEventObj* eventObjNext = GetNext(event); eTimerMatch timerMatch = tmNone; -#if VDRVERSNUM > 20300 - LOCK_TIMERS_READ; - const cTimers *vdrtimers = Timers; -#else - cTimers *vdrtimers = &Timers; -#endif vdrtimers->GetMatch(event, &timerMatch); const char* szRed = trVDR("Button$Record"); if (timerMatch == tmFull) |