diff options
author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-07-30 16:02:03 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-07-30 16:02:03 +0000 |
commit | dbe675b374ec62cb25825dae41a10f163faa87c4 (patch) | |
tree | 2b843fe84c7f3fa352aeacedeace1993537d9eb8 | |
parent | 0d54861f5d02c6632994d799414b68363923bc94 (diff) | |
download | pygobject-dbe675b374ec62cb25825dae41a10f163faa87c4.tar.gz pygobject-dbe675b374ec62cb25825dae41a10f163faa87c4.tar.xz pygobject-dbe675b374ec62cb25825dae41a10f163faa87c4.zip |
don't deprecate gobject.type_register, just give a warning if trying to register a class that is already registered
-rw-r--r-- | gobject/gobjectmodule.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 1bcd221..322816b 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -974,11 +974,6 @@ static PyObject * _wrap_pyg_type_register(PyObject *self, PyObject *args) { PyTypeObject *class; - PyObject *gtype; - - if (PyErr_Warn(PyExc_DeprecationWarning, "gobject.type_register is deprecated;" - " now types are automatically registered")) - return NULL; if (!PyArg_ParseTuple(args, "O:gobject.type_register", &class)) return NULL; @@ -988,16 +983,21 @@ _wrap_pyg_type_register(PyObject *self, PyObject *args) } /* Check if type already registered */ - gtype = PyObject_GetAttrString((PyObject *)class, "__gtype__"); - if (gtype == NULL) { - PyErr_Clear(); - /* not registered */ + if (pyg_type_from_object((PyObject *) class) == + pyg_type_from_object((PyObject *) class->tp_base)) + { if (pyg_type_register(class, NULL)) return NULL; - } else + } else { + gchar *msg; /* already registered */ - Py_DECREF(gtype); - + msg = g_strdup_printf("Class %s is already GObject-registered", class->tp_name); + if (PyErr_Warn(PyExc_Warning, msg)) { + g_free(msg); + return NULL; + } + g_free(msg); + } Py_INCREF(class); return (PyObject *) class; } |