From 5f8d2d3431dfd55a85567e9240d284aef526da8c Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Sun, 9 Jul 2006 14:22:51 +0000 Subject: missing iinfo.interface_data, needed for interface implementation --- gobject/gobjectmodule.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gobject') diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 00630ae..774edf9 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1330,12 +1330,15 @@ pyg_type_register(PyTypeObject *class, const char *type_name) (PyTypeObject *) PyTuple_GET_ITEM(class->tp_bases, i); GType itype; const GInterfaceInfo *iinfo; + GInterfaceInfo iinfo_copy; if (((PyTypeObject *) base)->tp_base != &PyGInterface_Type) continue; itype = pyg_type_from_object((PyObject *) base); iinfo = pyg_lookup_interface_info(itype); + iinfo_copy = *iinfo; + iinfo_copy.interface_data = class; if (!iinfo) { char *msg; msg = g_strdup_printf("Interface type %s " @@ -1345,7 +1348,7 @@ pyg_type_register(PyTypeObject *class, const char *type_name) g_free(msg); continue; } - g_type_add_interface_static(instance_type, itype, iinfo); + g_type_add_interface_static(instance_type, itype, &iinfo_copy); } } else g_warning("type has no tp_bases"); -- cgit