From cf8c0acb305c4d8e33403d5e15c41f19895452db Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Tue, 19 Oct 2021 12:09:43 +0200 Subject: [PATCH] third time try to fix reloadchannels segfault with alternate_logos --- src/gui/channellist.h | 1 + src/gui/streaminfo2.cpp | 2 +- src/zapit/src/zapit.cpp | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/channellist.h b/src/gui/channellist.h index f6a50f740c..edb403b749 100644 --- a/src/gui/channellist.h +++ b/src/gui/channellist.h @@ -192,6 +192,7 @@ class CChannelList : public CListHelpers, public sigc::trackable void SetChannelList(ZapitChannelList* zlist); void addChannel(CZapitChannel* chan); + void ClearChannelList(){if (!(*chanlist).empty()) (*chanlist).clear();}; CZapitChannel* getChannel(int number); CZapitChannel* getChannel(t_channel_id channel_id); diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index dd65cd2943..ee08724a3e 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -1127,7 +1127,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) CZapitChannel * cc = NULL; if (channel->getChannelID() & 0xFFFFFFFFFFFFULL) if (CNeutrinoApp::getInstance()->channelList) - cc = CNeutrinoApp::getInstance()->channelList->getChannel(channel->getChannelID()); + cc = CServiceManager::getInstance()->FindChannel(channel->getChannelID()); if (cc) { diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 70cdfc2eec..982de5b863 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -1503,7 +1503,7 @@ bool CZapit::ParseCommand(CBasicMessage::Header &rmsg, int connfd) case CZapitMessages::CMD_REINIT_CHANNELS: { // Houdini: save actual channel to restore it later, old version's channel was set to scans.conf initial channel t_channel_id cid= current_channel ? current_channel->getChannelID() : 0; - + CNeutrinoApp::getInstance()->channelList->ClearChannelList(); PrepareChannels(); current_channel = CServiceManager::getInstance()->FindChannel(cid);