#include <lib/python/connections.h>
PSignal::PSignal()
+ :m_destroyed(0)
{
- m_list = PyList_New(0);
- Py_INCREF(m_list);
}
PSignal::~PSignal()
{
- Py_DECREF(m_list);
+ if (m_destroyed)
+ *m_destroyed = true;
+ Py_XDECREF(m_list);
}
void PSignal::callPython(ePyObject tuple)
}
}
-PyObject *PSignal::get()
+PyObject *PSignal::get(bool steal)
{
- Py_INCREF(m_list);
+ if (!steal) {
+ if (!m_list)
+ m_list = PyList_New(0);
+ Py_INCREF(m_list);
+ }
return m_list;
}