summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gobject/gobjectmodule.c2
-rw-r--r--tests/test_subtype.py3
2 files changed, 4 insertions, 1 deletions
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)