From c91990e15aa4df649f90424d93c45e9bc8e0909b Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Sun, 29 May 2005 14:04:00 +0000 Subject: fix registration of already registered types through the gobject metaclass --- gobject/pygobject.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gobject/pygobject.c b/gobject/pygobject.c index 691b1f1..a6efa3f 100644 --- a/gobject/pygobject.c +++ b/gobject/pygobject.c @@ -1249,9 +1249,16 @@ PyTypeObject PyGObject_Type = { static int pygobjectmeta_init(PyTypeObject *subtype, PyObject *args, PyObject *kwargs) { + PyObject *instance_dict; if (PyType_Type.tp_init((PyObject *) subtype, args, kwargs)) return -1; - return pyg_type_register(subtype); + instance_dict = PyTuple_GetItem(args, 2); + if (instance_dict) { + if (PyDict_GetItemString(instance_dict, "__gtype__") == NULL) + return pyg_type_register(subtype); + } else + PyErr_Clear(); + return 0; } -- cgit