X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2Fconnections.cpp;h=c0d38f8931a38c8a3fc1786ec9a60f6087f2d3ef;hp=fd3e2a4bc498517cd33797ae681547f1af8d4db5;hb=c437ed274b0155ecdeb7382d6ee46d67a53755b9;hpb=6dcb75c26bbfec04b381bb99d75404f9fe50635d diff --git a/lib/python/connections.cpp b/lib/python/connections.cpp index fd3e2a4..c0d38f8 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; +}