From 7843cbf34ccb5b867ae49fc9e7731247e525f81e Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Sun, 25 Dec 2005 22:33:15 +0000 Subject: [PATCH] xmas segfault bugfix (sorry... it was my fault :( ) e2 segfaults every time when linked tuner was active and you zapped to a non tuneable channel and open the servicelist i hope no new image was released after "2005/12/23 02:52:28" --- lib/dvb/dvb.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 62899379..57db2462 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -493,19 +493,22 @@ bool eDVBResourceManager::canAllocateChannel(const eDVBChannelID &channelid, con if (!decremented_cached_channel_fe_usecount) { - eDVBChannel *channel = (eDVBChannel*) &(*m_cached_channel); - if (channel->getUseCount() == 1) + if (m_cached_channel) { - ePtr fe; - if (!channel->getFrontend(fe)) + eDVBChannel *channel = (eDVBChannel*) &(*m_cached_channel); + if (channel->getUseCount() == 1) { - for (eSmartPtrList::iterator ii(m_frontend.begin()); ii != m_frontend.end(); ++ii) + ePtr fe; + if (!channel->getFrontend(fe)) { - if ( &(*fe) == &(*ii->m_frontend) ) + for (eSmartPtrList::iterator ii(m_frontend.begin()); ii != m_frontend.end(); ++ii) { - --ii->m_inuse; - decremented_cached_channel_fe_usecount = &ii->m_inuse; - break; + if ( &(*fe) == &(*ii->m_frontend) ) + { + --ii->m_inuse; + decremented_cached_channel_fe_usecount = &ii->m_inuse; + break; + } } } } -- 2.30.2