diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-12-25 22:33:15 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-12-25 22:33:15 +0000 |
| commit | 7843cbf34ccb5b867ae49fc9e7731247e525f81e (patch) | |
| tree | c14ac2b29412787cae407d4d2de819ac509369f0 /lib/dvb/dvb.cpp | |
| parent | c31bef10af2174fc72b9e5658edc81681da4e47e (diff) | |
| download | enigma2-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.cpp | 21 |
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; + } } } } |
