diff options
author | Jasmin Jessich <jasmin@anw.at> | 2017-05-18 23:09:38 +0200 |
---|---|---|
committer | Jasmin Jessich <jasmin@anw.at> | 2017-05-18 23:09:38 +0200 |
commit | 8c21f7d47998ffc1c2c6568226eb693b0a918c7a (patch) | |
tree | 44f2ffc9d4e8b4499955d4eca179618fc1df93cd /epgsearch.cpp | |
parent | 521fbcbb84720e2c70d305f04a3440c837e58eef (diff) | |
download | vdr-plugin-live-8c21f7d47998ffc1c2c6568226eb693b0a918c7a.tar.gz vdr-plugin-live-8c21f7d47998ffc1c2c6568226eb693b0a918c7a.tar.bz2 |
Fixed lock order in SearchResult::GetEvent
- SearchResult::GetEvent has now a new parameter Channel
- Call EpgEvents::CreateEpgInfo only, if a Channel has been found.
Diffstat (limited to 'epgsearch.cpp')
-rw-r--r-- | epgsearch.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/epgsearch.cpp b/epgsearch.cpp index 0b15f10..b157ea0 100644 --- a/epgsearch.cpp +++ b/epgsearch.cpp @@ -576,20 +576,18 @@ SearchResult::SearchResult( string const& data ) } } -const cEvent* SearchResult::GetEvent() +const cEvent* SearchResult::GetEvent(const cChannel* Channel) { - /* JJJ: Lock order wrong, fix if function is still used - * Needs to be Timers, Channels, Recordings Schedules in this sequence - */ + if (!Channel) return NULL; + #if VDRVERSNUM >= 20301 LOCK_SCHEDULES_READ; #else cSchedulesLock schedulesLock; const cSchedules* Schedules = cSchedules::Schedules(schedulesLock); -#endif if (!Schedules) return NULL; - const cChannel *Channel = GetChannel(); - if (!Channel) return NULL; +#endif + const cSchedule *Schedule = Schedules->GetSchedule(Channel); if (!Schedule) return NULL; return Schedule->GetEvent(m_eventId); |