X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/26ff43bdf1eb6fe4da12db2c61a63c0dcd9612c8..7c9176b37c107c670dae2f587ece3a63bf64a10d:/lib/python/connections.cpp diff --git a/lib/python/connections.cpp b/lib/python/connections.cpp index 3c31baf8..b54c07b1 100644 --- a/lib/python/connections.cpp +++ b/lib/python/connections.cpp @@ -1,11 +1,14 @@ #include PSignal::PSignal() + :m_destroyed(0) { } PSignal::~PSignal() { + if (m_destroyed) + *m_destroyed = true; Py_XDECREF(m_list); } @@ -20,13 +23,12 @@ void PSignal::callPython(ePyObject tuple) } } -PyObject *PSignal::get() +PyObject *PSignal::get(bool steal) { - if (!m_list) - { - m_list = PyList_New(0); + if (!steal) { + if (!m_list) + m_list = PyList_New(0); Py_INCREF(m_list); } - Py_INCREF(m_list); return m_list; }