From 3a70f2630f8514c841bb5ddeff9f0fad91a99605 Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Sun, 9 Jul 2006 14:45:25 +0000 Subject: interface implementation fix --- gobject/gobjectmodule.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'gobject') diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 774edf9..d4909a9 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1312,16 +1312,6 @@ pyg_type_register(PyTypeObject *class, const char *type_name) PyErr_Clear(); } - gclass = g_type_class_ref(instance_type); - if (pyg_run_class_init(instance_type, gclass, class)) { - g_type_class_unref(gclass); - return -1; - } - g_type_class_unref(gclass); - - if (gsignals) - PyDict_DelItemString(class->tp_dict, "__gsignals__"); - /* Register interface implementations */ if (class->tp_bases) { for (i = 0; i < PyTuple_GET_SIZE(class->tp_bases); ++i) @@ -1353,6 +1343,16 @@ pyg_type_register(PyTypeObject *class, const char *type_name) } else g_warning("type has no tp_bases"); + gclass = g_type_class_ref(instance_type); + if (pyg_run_class_init(instance_type, gclass, class)) { + g_type_class_unref(gclass); + return -1; + } + g_type_class_unref(gclass); + + if (gsignals) + PyDict_DelItemString(class->tp_dict, "__gsignals__"); + return 0; } -- cgit