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/

Reply via email to