summaryrefslogtreecommitdiffstats
path: root/gobject/gobjectmodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'gobject/gobjectmodule.c')
-rw-r--r--gobject/gobjectmodule.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index cd08c34..0a84488 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;
}
}