Hey folks, Got a segfault when I forgot to call __gobject_init__() on an object. Yes, I'm new to pygtk hacking ;) This check will give a nicer error.
Cheers, -- Andy Wingo http://wingolog.org/
? self_obj_null_check.diff Index: ChangeLog =================================================================== RCS file: /cvs/gnome/gnome-python/pygtk/ChangeLog,v retrieving revision 1.1142 diff -u -r1.1142 ChangeLog --- ChangeLog 16 Jan 2005 14:47:55 -0000 1.1142 +++ ChangeLog 20 Jan 2005 12:10:27 -0000 @@ -1,3 +1,9 @@ +2005-01-20 Andy Wingo <[EMAIL PROTECTED]> + + * gobject/pygobject.c (pygobject_connect): If self->obj is NULL, + remind the user that they need to __gobject_init__ instead of + segfaulting. + 2005-01-16 Gustavo J. A. M. Carneiro <[EMAIL PROTECTED]> * gobject/gobjectmodule.c (pyg_type_register): Use tp_base field Index: gobject/pygobject.c =================================================================== RCS file: /cvs/gnome/gnome-python/pygtk/gobject/pygobject.c,v retrieving revision 1.39 diff -u -r1.39 pygobject.c --- gobject/pygobject.c 27 Nov 2004 19:12:34 -0000 1.39 +++ gobject/pygobject.c 20 Jan 2005 12:10:28 -0000 @@ -793,6 +793,10 @@ PyErr_SetString(PyExc_TypeError, "second argument must be callable"); return NULL; } + if (!self->obj) { + PyErr_SetString(PyExc_TypeError, "uninitialized gobject! call __gobject_init__() first"); + return NULL; + } if (!g_signal_parse_name(name, G_OBJECT_TYPE(self->obj), &sigid, &detail, TRUE)) { PyErr_SetString(PyExc_TypeError, "unknown signal name");
_______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/