xmas segfault bugfix (sorry... it was my fault :( )
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Sun, 25 Dec 2005 22:33:15 +0000 (22:33 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Sun, 25 Dec 2005 22:33:15 +0000 (22:33 +0000)
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

index 6289937997c0e19d75396e8942036ca6e5aa8d31..57db24626338962596969f820f41ee7e7545d629 100644 (file)
@@ -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;
+                                               }
                                        }
                                }
                        }