summaryrefslogtreecommitdiffstats
path: root/gobject/pygobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'gobject/pygobject.c')
-rw-r--r--gobject/pygobject.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gobject/pygobject.c b/gobject/pygobject.c
index fa8ef90..b6ea6f8 100644
--- a/gobject/pygobject.c
+++ b/gobject/pygobject.c
@@ -255,6 +255,19 @@ pygobject_new_with_interfaces(GType gtype)
return NULL;
}
+#if 1
+ /* Workaround python tp_(get|set)attr slot inheritance bug.
+ * Fixes pygtk bug #144135. */
+ if (!type->tp_getattr && py_parent_type->tp_getattr) {
+ type->tp_getattro = NULL;
+ type->tp_getattr = py_parent_type->tp_getattr;
+ }
+ if (!type->tp_setattr && py_parent_type->tp_setattr) {
+ type->tp_setattro = NULL;
+ type->tp_setattr = py_parent_type->tp_setattr;
+ }
+#endif
+
#if 0
type->tp_dealloc = (destructor)pygobject_dealloc;
type->tp_traverse = (traverseproc)pygobject_traverse;