aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/dvb.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-12-25 22:33:15 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-12-25 22:33:15 +0000
commit7843cbf34ccb5b867ae49fc9e7731247e525f81e (patch)
treec14ac2b29412787cae407d4d2de819ac509369f0 /lib/dvb/dvb.cpp
parentc31bef10af2174fc72b9e5658edc81681da4e47e (diff)
downloadenigma2-7843cbf34ccb5b867ae49fc9e7731247e525f81e.tar.gz
enigma2-7843cbf34ccb5b867ae49fc9e7731247e525f81e.zip
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"
Diffstat (limited to 'lib/dvb/dvb.cpp')
-rw-r--r--lib/dvb/dvb.cpp21
1 files 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<iDVBFrontend> fe;
- if (!channel->getFrontend(fe))
+ eDVBChannel *channel = (eDVBChannel*) &(*m_cached_channel);
+ if (channel->getUseCount() == 1)
{
- for (eSmartPtrList<eDVBRegisteredFrontend>::iterator ii(m_frontend.begin()); ii != m_frontend.end(); ++ii)
+ ePtr<iDVBFrontend> fe;
+ if (!channel->getFrontend(fe))
{
- if ( &(*fe) == &(*ii->m_frontend) )
+ for (eSmartPtrList<eDVBRegisteredFrontend>::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;
+ }
}
}
}