mirror of https://github.com/python/cpython
bpo-43916: select.poll uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25750)
This commit is contained in:
parent
5979e81a21
commit
387397f8a4
|
@ -87,6 +87,10 @@ class SelectTestCase(unittest.TestCase):
|
|||
a[:] = [F()] * 10
|
||||
self.assertEqual(select.select([], a, []), ([], a[:5], []))
|
||||
|
||||
def test_disallow_instantiation(self):
|
||||
tp = type(select.poll())
|
||||
self.assertRaises(TypeError, tp)
|
||||
|
||||
def tearDownModule():
|
||||
support.reap_children()
|
||||
|
||||
|
|
|
@ -728,13 +728,6 @@ newPollObject(PyObject *module)
|
|||
return self;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
poll_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
|
||||
{
|
||||
PyErr_Format(PyExc_TypeError, "Cannot create '%.200s' instances", _PyType_Name(type));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
poll_dealloc(pollObject *self)
|
||||
{
|
||||
|
@ -2275,16 +2268,14 @@ static PyMethodDef poll_methods[] = {
|
|||
static PyType_Slot poll_Type_slots[] = {
|
||||
{Py_tp_dealloc, poll_dealloc},
|
||||
{Py_tp_methods, poll_methods},
|
||||
{Py_tp_new, poll_new},
|
||||
{0, 0},
|
||||
};
|
||||
|
||||
static PyType_Spec poll_Type_spec = {
|
||||
"select.poll",
|
||||
sizeof(pollObject),
|
||||
0,
|
||||
Py_TPFLAGS_DEFAULT,
|
||||
poll_Type_slots
|
||||
.name = "select.poll",
|
||||
.basicsize = sizeof(pollObject),
|
||||
.flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION,
|
||||
.slots = poll_Type_slots,
|
||||
};
|
||||
|
||||
#ifdef HAVE_SYS_DEVPOLL_H
|
||||
|
|
Loading…
Reference in New Issue