X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/32d5ad61f5c88e22613e0ade1733d617add0df6b..77923ed4e1caecf4cef7d46bd6979ef700fed7e2:/lib/python/connections.cpp diff --git a/lib/python/connections.cpp b/lib/python/connections.cpp index 00f33f71..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,10 +23,12 @@ void PSignal::callPython(ePyObject tuple) } } -PyObject *PSignal::get() +PyObject *PSignal::get(bool steal) { - if (!m_list) - m_list = PyList_New(0); - Py_INCREF(m_list); + if (!steal) { + if (!m_list) + m_list = PyList_New(0); + Py_INCREF(m_list); + } return m_list; }