summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustavo J. A. M. Carneiro <gjc@src.gnome.org>2005-07-30 16:02:03 +0000
committerGustavo J. A. M. Carneiro <gjc@src.gnome.org>2005-07-30 16:02:03 +0000
commitdbe675b374ec62cb25825dae41a10f163faa87c4 (patch)
tree2b843fe84c7f3fa352aeacedeace1993537d9eb8
parent0d54861f5d02c6632994d799414b68363923bc94 (diff)
downloadpygobject-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.c24
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;
}