mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-26 23:13:13 +02:00
fix other reloadchannels segfault with getepgid
This commit is contained in:
@@ -564,10 +564,12 @@ t_channel_id getepgid(std::string epg_name)
|
||||
if (m == CZapitClient::MODE_RADIO)
|
||||
cit = g_bouquetManager->radioChannelsBegin();
|
||||
|
||||
for (; !(cit.EndOfChannels()); cit++)
|
||||
for (; g_bouquetManager->empty || !(cit.EndOfChannels()); cit++)
|
||||
{
|
||||
std::string tvg_id = (*cit)->getEPGmap();
|
||||
if(g_bouquetManager->empty)
|
||||
break;
|
||||
|
||||
std::string tvg_id = (*cit)->getEPGmap();
|
||||
if (tvg_id.empty())
|
||||
continue;
|
||||
|
||||
@@ -576,6 +578,8 @@ t_channel_id getepgid(std::string epg_name)
|
||||
{
|
||||
if (match_found)
|
||||
{
|
||||
if(g_bouquetManager->empty)
|
||||
break;
|
||||
if ((*cit)->getEpgID() == epgid) continue;
|
||||
(*cit)->setEPGid(epgid);
|
||||
}
|
||||
|
@@ -122,8 +122,9 @@ class CBouquetManager : public OpenThreads::Thread
|
||||
bool logo_running;
|
||||
std::list<t_channel_id> LogoList;
|
||||
public:
|
||||
CBouquetManager() { remainChannels = NULL; logo_running = false; };
|
||||
CBouquetManager() { remainChannels = NULL; logo_running = false; empty = false; };
|
||||
~CBouquetManager();
|
||||
bool empty;
|
||||
class ChannelIterator
|
||||
{
|
||||
private:
|
||||
|
@@ -1180,15 +1180,18 @@ bool CZapit::PrepareChannels()
|
||||
{
|
||||
current_channel = 0;
|
||||
|
||||
if (!CServiceManager::getInstance()->LoadServices(false))
|
||||
g_bouquetManager->empty = true;
|
||||
if (!CServiceManager::getInstance()->LoadServices(false)){
|
||||
g_bouquetManager->empty = false;
|
||||
return false;
|
||||
|
||||
}
|
||||
INFO("LoadServices: success");
|
||||
|
||||
if(CNeutrinoApp::getInstance()->channelList)
|
||||
CNeutrinoApp::getInstance()->channelList->ClearChannelList();
|
||||
|
||||
g_bouquetManager->loadBouquets();
|
||||
g_bouquetManager->empty = false;
|
||||
/* save if services changed (update from sdt, etc) */
|
||||
CServiceManager::getInstance()->SaveServices(true, true);
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user