diff options
| author | Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> | 2023-05-16 14:38:17 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-16 14:38:17 (GMT) |
| commit | 442a3e65da2594bedee88a3e81338d86926bde56 (patch) | |
| tree | 47f03f721e2317a226379d0688b32c523928f73b /Modules/_io/textio.c | |
| parent | 0bb61dd5b0ffc248e18f1b33cddd18788f28e60a (diff) | |
| download | cpython-442a3e65da2594bedee88a3e81338d86926bde56.zip cpython-442a3e65da2594bedee88a3e81338d86926bde56.tar.gz cpython-442a3e65da2594bedee88a3e81338d86926bde56.tar.bz2 | |
GH-104510: Fix refleaks in `_io` base types (#104516)
Diffstat (limited to 'Modules/_io/textio.c')
| -rw-r--r-- | Modules/_io/textio.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index e858a1f..46411c7 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -167,12 +167,6 @@ textiobase_errors_get(PyObject *self, void *context) Py_RETURN_NONE; } -static int -textiobase_traverse(PyObject *self, visitproc visit, void *arg) -{ - Py_VISIT(Py_TYPE(self)); - return 0; -} static PyMethodDef textiobase_methods[] = { _IO__TEXTIOBASE_DETACH_METHODDEF @@ -193,13 +187,13 @@ static PyType_Slot textiobase_slots[] = { {Py_tp_doc, (void *)textiobase_doc}, {Py_tp_methods, textiobase_methods}, {Py_tp_getset, textiobase_getset}, - {Py_tp_traverse, textiobase_traverse}, {0, NULL}, }; +/* Do not set Py_TPFLAGS_HAVE_GC so that tp_traverse and tp_clear are inherited */ PyType_Spec textiobase_spec = { .name = "_io._TextIOBase", - .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC | + .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_IMMUTABLETYPE), .slots = textiobase_slots, }; |
