X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6dcb75c26bbfec04b381bb99d75404f9fe50635d..96ac5ba0afb7fb1ea96aee24fc497e76dc2c652b:/lib/python/connections.cpp diff --git a/lib/python/connections.cpp b/lib/python/connections.cpp index fd3e2a4b..c0d38f89 100644 --- a/lib/python/connections.cpp +++ b/lib/python/connections.cpp @@ -2,13 +2,11 @@ PSignal::PSignal() { - m_list = PyList_New(0); - Py_INCREF(m_list); } PSignal::~PSignal() { - Py_DECREF(m_list); + Py_XDECREF(m_list); } void PSignal::callPython(ePyObject tuple) @@ -24,6 +22,19 @@ void PSignal::callPython(ePyObject tuple) PyObject *PSignal::get() { + if (!m_list) + m_list = PyList_New(0); Py_INCREF(m_list); return m_list; } + +PyObject *PSignal::getSteal(bool clear) +{ + if (clear) + { + ePyObject ret = m_list; + m_list = (PyObject*)0; + return ret; + } + return m_list; +}