ASSERT m_pvr_thread to be alive
[enigma2.git] / lib / dvb / dvb.cpp
index fa15d66289ddf5f13148b60514b3f8fd944cdcc8..a2652c5b7affd1ff9f1b6db7e0bafb35507d2380 100644 (file)
@@ -248,12 +248,12 @@ void eDVBResourceManager::addAdapter(iDVBAdapter *adapter)
        }
 }
 
-void eDVBResourceManager::setFrontendSlotInformations(ePyObject list)
+PyObject *eDVBResourceManager::setFrontendSlotInformations(ePyObject list)
 {
        if (!PyList_Check(list))
        {
                PyErr_SetString(PyExc_StandardError, "eDVBResourceManager::setFrontendSlotInformations argument should be a python list");
-               return;
+               return NULL;
        }
        if ((unsigned int)PyList_Size(list) != m_frontend.size())
        {
@@ -261,14 +261,16 @@ void eDVBResourceManager::setFrontendSlotInformations(ePyObject list)
                sprintf(blasel, "eDVBResourceManager::setFrontendSlotInformations list size incorrect %d frontends avail, but %d entries in slotlist",
                        m_frontend.size(), PyList_Size(list));
                PyErr_SetString(PyExc_StandardError, blasel);
-               return;
+               return NULL;
        }
        int pos=0;
        for (eSmartPtrList<eDVBRegisteredFrontend>::iterator i(m_frontend.begin()); i != m_frontend.end(); ++i)
        {
                ePyObject obj = PyList_GET_ITEM(list, pos++);
-               i->m_frontend->setSlotInfo(obj);
+               if (!i->m_frontend->setSlotInfo(obj))
+                       return NULL;
        }
+       Py_RETURN_NONE;
 }
 
 RESULT eDVBResourceManager::allocateFrontend(ePtr<eDVBAllocatedFrontend> &fe, ePtr<iDVBFrontendParameters> &feparm)
@@ -920,6 +922,7 @@ void eDVBChannel::cueSheetEvent(int event)
                                m_skipmode_n = m_skipmode_m = 0;
                        }
                }
+               ASSERT(m_pvr_thread);
                m_pvr_thread->setIFrameSearch(m_skipmode_n != 0);
                eDebug("flush pvr");
                flushPVR(m_cue->m_decoding_demux);