diff options
Diffstat (limited to 'media-plugins/vdr-epgsync/files')
-rw-r--r-- | media-plugins/vdr-epgsync/files/vdr-epgsync-1.0.1_vdr-2.4.patch | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/media-plugins/vdr-epgsync/files/vdr-epgsync-1.0.1_vdr-2.4.patch b/media-plugins/vdr-epgsync/files/vdr-epgsync-1.0.1_vdr-2.4.patch new file mode 100644 index 000000000000..9b3df4097fd4 --- /dev/null +++ b/media-plugins/vdr-epgsync/files/vdr-epgsync-1.0.1_vdr-2.4.patch @@ -0,0 +1,56 @@ +compilefix for media-video/vdr-2.4.1 +Suggested-by: MatthiasK @ vdr-portal.de + +Signed-off-by: Joerg Bornkessel <hd_brummy@gentoo.org> ( 27 Dec 2019 ) +diff -Naur epgsync-1.0.1.orig/thread.c epgsync-1.0.1/thread.c +--- epgsync-1.0.1.orig/thread.c 2019-12-26 00:12:49.124492713 +0100 ++++ epgsync-1.0.1/thread.c 2019-12-26 00:17:55.129492713 +0100 +@@ -42,9 +42,10 @@ + } + } + +-cChannel *GetChannelByName(const char* Name, const cChannel *IgnoreChannel = NULL, eChannelTypes Type = ctAll) ++const cChannel *GetChannelByName(const char* Name, const cChannel *IgnoreChannel = NULL, eChannelTypes Type = ctAll) + { +- for (cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel)) { ++ LOCK_CHANNELS_READ; ++ for (const cChannel *channel = Channels->First(); channel; channel = Channels->Next(channel)) { + if (strcasecmp(Name, channel->Name()) == 0 || strcasecmp(Name, channel->ShortName()) == 0) { + if (IsType(channel, Type) && channel != IgnoreChannel) + return channel; +@@ -95,20 +96,17 @@ + if (EpgSyncSetup.redirectChannels == rcmId) { + // Direct import, no mapping: + // loop through local channels, get channels by ID +- cSchedulesLock *lock = NULL; +- for (cChannel *channel = Channels.First(); channel && Running(); +- channel = Channels.Next(channel)) { +- if (!lock) +- lock = new cSchedulesLock(); +- if (cSchedules::Schedules(*lock)->GetSchedule(channel)) { +- DELETENULL(lock); ++ LOCK_CHANNELS_READ; ++ for (const cChannel *channel = Channels->First(); channel && Running(); ++ channel = Channels->Next(channel)) { ++ LOCK_SCHEDULES_READ; ++ if (Schedules->GetSchedule(channel)) { + if (CmdLSTE(f, *channel->GetChannelID().ToString())) { + AddSchedule(f); + } + cCondWait::SleepMs(EPGSYNC_SLEEPMS); + } + } +- DELETENULL(lock); + } + else { + // Map channels by name: +@@ -182,7 +180,8 @@ + targetChannel = NULL; + + const char* p = skipspace(s + 1); +- cChannel *c = Channels.GetByChannelID(tChannelID::FromString(p)); ++ LOCK_CHANNELS_READ; ++ const cChannel *c = Channels->GetByChannelID(tChannelID::FromString(p)); + bool cOk = IsType(c, (eChannelTypes) EpgSyncSetup.channelTypes); + + if (cOk && EpgSyncSetup.redirectChannels != rcmNameId) { |