summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo J. A. M. Carneiro <gjc@src.gnome.org>2005-09-13 17:51:31 +0000
committerGustavo J. A. M. Carneiro <gjc@src.gnome.org>2005-09-13 17:51:31 +0000
commited44ba4bf0e95783563384625c679f863dcfe8c2 (patch)
treeacd7232b2356b57c701a76d6bc34e6695aa2224f
parent50c144dae6480c9a94d4fe8f19cf9b7b0222f02c (diff)
downloadpygtk-ed44ba4bf0e95783563384625c679f863dcfe8c2.tar.gz
better error messages when registering properties
-rw-r--r--ChangeLog6
-rw-r--r--gobject/gobjectmodule.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a41b2be4..925dbb9e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;
}
}