Thread: [Pyobjc-dev] PyObjC crash?
Brought to you by:
ronaldoussoren
From: Michael G. <gla...@ho...> - 2005-10-31 21:05:29
|
I recently ran into a problem that I don't fully understand, and thought I'd ask here for an explanation. It may also be a PyObjC bug, in which case I thought you would want to know about it. If you do this: import Foundation class c(Foundation.NSObject): def f(x): pass c.f(None) You get an "Abort Trap" that kills the Python interpreter. If you don't use NSObject as a base class, you get "TypeError: unbound method f() must be called with c instance as first argument (got NoneType instance instead)", which is a lot friendlier error. No matter which base class you use, if you include "f = staticmethod(f)" after the function definition, which is what I meant to do in the first place, it works correctly. The real question is, why does using NSObject as a base class cause a crash instead of a friendlier error? And can it be fixed? Thanks! Mike |
From: Ronald O. <ron...@ma...> - 2005-11-02 20:02:53
|
On 31-okt-2005, at 22:01, Michael Glassford wrote: > I recently ran into a problem that I don't fully understand, and > thought I'd ask here for an explanation. It may also be a PyObjC > bug, in which case I thought you would want to know about it. > > If you do this: > > import Foundation > class c(Foundation.NSObject): > def f(x): > pass > c.f(None) > > You get an "Abort Trap" that kills the Python interpreter. It's not supposed to do that ;-) > > If you don't use NSObject as a base class, you get "TypeError: > unbound method f() must be called with c instance as first argument > (got NoneType instance instead)", which is a lot friendlier error. > > No matter which base class you use, if you include "f = staticmethod > (f)" after the function definition, which is what I meant to do in > the first place, it works correctly. > > The real question is, why does using NSObject as a base class cause > a crash instead of a friendlier error? And can it be fixed? It's a bug. I've just checked in a fix for the bug (revision 1744). > > Thanks! > > Mike > > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. > Download > it for free - -and be entered to win a 42" plasma tv or your very own > Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Pyobjc-dev mailing list > Pyo...@li... > https://lists.sourceforge.net/lists/listinfo/pyobjc-dev |