diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-10-29 19:46:57 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-10-29 19:46:57 +0000 |
| commit | 10e7e45ae92d4fe06f70126ed256b87896dbc432 (patch) | |
| tree | f4b03eb252e5517ccb67be3cd8463c10e14e147c /lib/python/connections.h | |
| parent | 6bb94cd5b0d8fd3608afe84e8d76aef554a4b401 (diff) | |
| download | enigma2-10e7e45ae92d4fe06f70126ed256b87896dbc432.tar.gz enigma2-10e7e45ae92d4fe06f70126ed256b87896dbc432.zip | |
better solution to add possibility to delete eSocketNotifiers,
eConsoleAppContainers in callback funktions without crash
Diffstat (limited to 'lib/python/connections.h')
| -rw-r--r-- | lib/python/connections.h | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/lib/python/connections.h b/lib/python/connections.h index ab123137..ad76198a 100644 --- a/lib/python/connections.h +++ b/lib/python/connections.h @@ -14,12 +14,14 @@ class PSignal { protected: ePyObject m_list; - bool *m_destroyed; public: PSignal(); ~PSignal(); void callPython(SWIG_PYOBJECT(ePyObject) tuple); - PyObject *get(bool steal=false); +#ifndef SWIG + PyObject *getSteal(bool clear=false); +#endif + PyObject *get(); }; inline PyObject *PyFrom(int v) @@ -38,18 +40,13 @@ class PSignal0: public PSignal, public Signal0<R> public: R operator()() { - bool destroyed=false; - m_destroyed = &destroyed; if (m_list) { PyObject *pArgs = PyTuple_New(0); callPython(pArgs); Org_Py_DECREF(pArgs); } - if (!destroyed) { - m_destroyed = 0; - return Signal0<R>::operator()(); - } + return Signal0<R>::operator()(); } }; @@ -59,8 +56,6 @@ class PSignal1: public PSignal, public Signal1<R,V0> public: R operator()(V0 a0) { - bool destroyed=false; - m_destroyed = &destroyed; if (m_list) { PyObject *pArgs = PyTuple_New(1); @@ -68,10 +63,7 @@ public: callPython(pArgs); Org_Py_DECREF(pArgs); } - if (!destroyed) { - m_destroyed = 0; - return Signal1<R,V0>::operator()(a0); - } + return Signal1<R,V0>::operator()(a0); } }; @@ -81,8 +73,6 @@ class PSignal2: public PSignal, public Signal2<R,V0,V1> public: R operator()(V0 a0, V1 a1) { - bool destroyed=false; - m_destroyed = &destroyed; if (m_list) { PyObject *pArgs = PyTuple_New(2); @@ -91,10 +81,7 @@ public: callPython(pArgs); Org_Py_DECREF(pArgs); } - if (!destroyed) { - m_destroyed = 0; - return Signal2<R,V0,V1>::operator()(a0, a1); - } + return Signal2<R,V0,V1>::operator()(a0, a1); } }; |
