From 1ef98e2f5d4f8e87f5ae25db93697a26e0c59fe4 Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Fri, 2 Sep 2005 15:12:25 +0000 Subject: [Bug 315100] gobject.type_register if parameter is not a type --- gobject/gobjectmodule.c | 2 +- tests/test_subtype.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index c43d368..cd08c34 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -975,7 +975,7 @@ _wrap_pyg_type_register(PyObject *self, PyObject *args) { PyTypeObject *class; - if (!PyArg_ParseTuple(args, "O:gobject.type_register", &class)) + if (!PyArg_ParseTuple(args, "O!:gobject.type_register", &PyType_Type, &class)) return NULL; if (!PyType_IsSubtype(class, &PyGObject_Type)) { PyErr_SetString(PyExc_TypeError,"argument must be a GObject subclass"); diff --git a/tests/test_subtype.py b/tests/test_subtype.py index 630344c..b01a593 100644 --- a/tests/test_subtype.py +++ b/tests/test_subtype.py @@ -70,3 +70,6 @@ class TestSubType(unittest.TestCase): PyWindow = type('PyWindow', (gtk.Window,), dict(__gtype_name__='PyWindow2')) foo = PyWindow() self.assertEqual(foo.__grefcount__, 2) + + def testRegisterArgNotType(self): + self.assertRaises(TypeError, gobject.type_register, 1) -- cgit