Re: strange thing after call PyObject_CallMethod

2009-01-03 Thread Bug Hunter
Thank you for so amazing debugging tutorial :). I owe you a beer. I found source of problem: then unhandled in python code exception occurs frame_dealloc() (Objects/frameobject.c:422) not called. Even if I call PyErr_Print(). But! If I call PyErr_Clear() then all okay! Docs says that both this f

Re: strange thing after call PyObject_CallMethod

2009-01-03 Thread Martin v. Löwis
> Why this happenning and who makes Py_INCREF(self)? There are multiple possible explanations, but I think you have ruled out most of them: 1. on_recv might be returning self. So py_result would be the same as self, and hence be an additional reference. However, you said that on_recv raised

strange thing after call PyObject_CallMethod

2009-01-03 Thread Exe
Hello everybody! I'm in trouble. This code shows that ob_refcnt increased by python if "on_recv" method throws exception. This occurs only if base C-class subclassed in python code. == my_old_refcnt = Py_REFCNT(self); py_result = PyObject_CallMethod(self, "on_recv", "(y#)", recvbuf, result