diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-11-25 17:18:48 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-11-25 17:18:48 +0000 |
| commit | 6dcb75c26bbfec04b381bb99d75404f9fe50635d (patch) | |
| tree | b4b0e4e7b92c2d6563a848279cb5b48e7e183f96 /lib/python/connections.h | |
| parent | 26a6141301937e0ef501b4cd7ae61b4f2293b7e5 (diff) | |
| download | enigma2-6dcb75c26bbfec04b381bb99d75404f9fe50635d.tar.gz enigma2-6dcb75c26bbfec04b381bb99d75404f9fe50635d.zip | |
python object refcount debugging code second try
Diffstat (limited to 'lib/python/connections.h')
| -rw-r--r-- | lib/python/connections.h | 38 |
1 files changed, 9 insertions, 29 deletions
diff --git a/lib/python/connections.h b/lib/python/connections.h index 8a06f7fa..d24bb42f 100644 --- a/lib/python/connections.h +++ b/lib/python/connections.h @@ -7,37 +7,17 @@ #include <features.h> #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200112L -#include <Python.h> + #include <lib/python/python.h> class PSignal { + ePyObject m_list; public: - PyObject *m_list; -public: - PSignal() - { - m_list = PyList_New(0); - Py_INCREF(m_list); - } - ~PSignal() - { - Py_DECREF(m_list); - } - - void callPython(PyObject *tuple) - { - int size = PyList_Size(m_list); - int i; - for (i=0; i<size; ++i) - { - PyObject *b = PyList_GET_ITEM(m_list, i); - ePython::call(b, tuple); - } - } - - - PyObject *get() { Py_INCREF(m_list); return m_list; } + PSignal(); + ~PSignal(); + void callPython(SWIG_PYOBJECT(ePyObject) tuple); + PyObject *get(); }; inline PyObject *PyFrom(int v) @@ -58,7 +38,7 @@ public: { PyObject *pArgs = PyTuple_New(0); callPython(pArgs); - Py_DECREF(pArgs); + Org_Py_DECREF(pArgs); return Signal0<R>::operator()(); } }; @@ -72,7 +52,7 @@ public: PyObject *pArgs = PyTuple_New(1); PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0)); callPython(pArgs); - Py_DECREF(pArgs); + Org_Py_DECREF(pArgs); return Signal1<R,V0>::operator()(a0); } }; @@ -87,7 +67,7 @@ public: PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0)); PyTuple_SET_ITEM(pArgs, 1, PyFrom(a1)); callPython(pArgs); - Py_DECREF(pArgs); + Org_Py_DECREF(pArgs); return Signal2<R,V0,V1>::operator()(a0, a1); } }; |
