- PyObject *pArgs = PyTuple_New(2);
- PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0));
- PyTuple_SET_ITEM(pArgs, 1, PyFrom(a1));
- callPython(pArgs);
- Org_Py_DECREF(pArgs);
- return Signal2<R,V0,V1>::operator()(a0, a1);
+ bool destroyed=false;
+ m_destroyed = &destroyed;
+ if (m_list)
+ {
+ PyObject *pArgs = PyTuple_New(2);
+ PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0));
+ PyTuple_SET_ITEM(pArgs, 1, PyFrom(a1));
+ callPython(pArgs);
+ Org_Py_DECREF(pArgs);
+ }
+ if (!destroyed) {
+ m_destroyed = 0;
+ return Signal2<R,V0,V1>::operator()(a0, a1);
+ }