Skip to content

Commit 7dcf0f6

Browse files
authored
bpo-43916: select.devpoll uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25751)
1 parent 9746cda commit 7dcf0f6

File tree

2 files changed

+5
-9
lines changed

2 files changed

+5
-9
lines changed

Lib/test/test_select.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ def test_disallow_instantiation(self):
9191
tp = type(select.poll())
9292
self.assertRaises(TypeError, tp)
9393

94+
if hasattr(select, 'devpoll'):
95+
tp = type(select.devpoll())
96+
self.assertRaises(TypeError, tp)
97+
9498
def tearDownModule():
9599
support.reap_children()
96100

Modules/selectmodule.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1110,13 +1110,6 @@ newDevPollObject(PyObject *module)
11101110
return self;
11111111
}
11121112

1113-
static PyObject *
1114-
devpoll_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
1115-
{
1116-
PyErr_Format(PyExc_TypeError, "Cannot create '%.200s' instances", _PyType_Name(type));
1117-
return NULL;
1118-
}
1119-
11201113
static void
11211114
devpoll_dealloc(devpollObject *self)
11221115
{
@@ -1131,15 +1124,14 @@ static PyType_Slot devpoll_Type_slots[] = {
11311124
{Py_tp_dealloc, devpoll_dealloc},
11321125
{Py_tp_getset, devpoll_getsetlist},
11331126
{Py_tp_methods, devpoll_methods},
1134-
{Py_tp_new, devpoll_new},
11351127
{0, 0},
11361128
};
11371129

11381130
static PyType_Spec devpoll_Type_spec = {
11391131
"select.devpoll",
11401132
sizeof(devpollObject),
11411133
0,
1142-
Py_TPFLAGS_DEFAULT,
1134+
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION,
11431135
devpoll_Type_slots
11441136
};
11451137

0 commit comments

Comments
 (0)