diff options
author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-09-13 17:51:31 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-09-13 17:51:31 +0000 |
commit | ed44ba4bf0e95783563384625c679f863dcfe8c2 (patch) | |
tree | acd7232b2356b57c701a76d6bc34e6695aa2224f | |
parent | 50c144dae6480c9a94d4fe8f19cf9b7b0222f02c (diff) | |
download | pygtk-ed44ba4bf0e95783563384625c679f863dcfe8c2.tar.gz |
better error messages when registering properties
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gobject/gobjectmodule.c | 10 |
2 files changed, 16 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2005-09-13 Gustavo J. A. M. Carneiro <gjc@gnome.org> + + * gobject/gobjectmodule.c (add_properties): Append extra + information to the exception value strings to help contextualize + any errors that occur while registering properties. + 2005-09-06 John Finlay <finlay@moeraki.com> * gtk/gdk.defs (set_urgency_hint): Add. diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index cd08c342..0a844883 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -925,7 +925,17 @@ add_properties (GType instance_type, PyObject *properties) if (pspec) { g_object_class_install_property(oclass, 1, pspec); } else { + PyObject *type, *value, *traceback; ret = FALSE; + PyErr_Fetch(&type, &value, &traceback); + if (PyString_Check(value)) { + char msg[256]; + g_snprintf(msg, 256, "%s (while registering property '%s' for GType '%s')", + PyString_AsString(value), prop_name, g_type_name(instance_type)); + Py_DECREF(value); + value = PyString_FromString(msg); + } + PyErr_Restore(type, value, traceback); break; } } |