@@ -2424,13 +2424,6 @@ _io_BufferedRandom___init___impl(buffered *self, PyObject *raw,
24242424#include "clinic/bufferedio.c.h"
24252425#undef clinic_state
24262426
2427- static int
2428- bufferediobase_traverse (PyObject * self , visitproc visit , void * arg )
2429- {
2430- Py_VISIT (Py_TYPE (self ));
2431- return 0 ;
2432- }
2433-
24342427static PyMethodDef bufferediobase_methods [] = {
24352428 _IO__BUFFEREDIOBASE_DETACH_METHODDEF
24362429 _IO__BUFFEREDIOBASE_READ_METHODDEF
@@ -2444,13 +2437,13 @@ static PyMethodDef bufferediobase_methods[] = {
24442437static PyType_Slot bufferediobase_slots [] = {
24452438 {Py_tp_doc , (void * )bufferediobase_doc },
24462439 {Py_tp_methods , bufferediobase_methods },
2447- {Py_tp_traverse , bufferediobase_traverse },
24482440 {0 , NULL },
24492441};
24502442
2443+ /* Do not set Py_TPFLAGS_HAVE_GC so that tp_traverse and tp_clear are inherited */
24512444PyType_Spec bufferediobase_spec = {
24522445 .name = "_io._BufferedIOBase" ,
2453- .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC |
2446+ .flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
24542447 Py_TPFLAGS_IMMUTABLETYPE ),
24552448 .slots = bufferediobase_slots ,
24562449};
0 commit comments