Skip to content

Commit 1e710b4

Browse files
fix by inheriting vsitor
1 parent 5ee2358 commit 1e710b4

File tree

4 files changed

+9
-37
lines changed

4 files changed

+9
-37
lines changed

Modules/_io/_iomodule.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,3 @@ extern PyObject *_PyIOBase_cannot_pickle(PyObject *self, PyObject *args);
195195
#ifdef HAVE_WINDOWS_CONSOLE_IO
196196
extern char _PyIO_get_console_type(PyObject *);
197197
#endif
198-
199-
200-
typedef struct {
201-
PyObject_HEAD
202-
203-
PyObject *dict;
204-
PyObject *weakreflist;
205-
} iobase;

Modules/_io/bufferedio.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2424,14 +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-
Py_VISIT(((iobase *)self)->dict);
2432-
return 0;
2433-
}
2434-
24352427
static PyMethodDef bufferediobase_methods[] = {
24362428
_IO__BUFFEREDIOBASE_DETACH_METHODDEF
24372429
_IO__BUFFEREDIOBASE_READ_METHODDEF
@@ -2445,13 +2437,12 @@ static PyMethodDef bufferediobase_methods[] = {
24452437
static PyType_Slot bufferediobase_slots[] = {
24462438
{Py_tp_doc, (void *)bufferediobase_doc},
24472439
{Py_tp_methods, bufferediobase_methods},
2448-
{Py_tp_traverse, bufferediobase_traverse},
24492440
{0, NULL},
24502441
};
24512442

24522443
PyType_Spec bufferediobase_spec = {
24532444
.name = "_io._BufferedIOBase",
2454-
.flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC |
2445+
.flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
24552446
Py_TPFLAGS_IMMUTABLETYPE),
24562447
.slots = bufferediobase_slots,
24572448
};

Modules/_io/iobase.c

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ class _io._RawIOBase "PyObject *" "clinic_state()->PyRawIOBase_Type"
2626
* IOBase class, an abstract class
2727
*/
2828

29+
typedef struct {
30+
PyObject_HEAD
31+
32+
PyObject *dict;
33+
PyObject *weakreflist;
34+
} iobase;
2935

3036
PyDoc_STRVAR(iobase_doc,
3137
"The abstract base class for all I/O classes.\n"
@@ -1030,14 +1036,6 @@ rawiobase_write(PyObject *self, PyObject *args)
10301036
return NULL;
10311037
}
10321038

1033-
static int
1034-
rawiobase_traverse(PyObject *self, visitproc visit, void *arg)
1035-
{
1036-
Py_VISIT(Py_TYPE(self));
1037-
Py_VISIT(((iobase *)self)->dict);
1038-
return 0;
1039-
}
1040-
10411039
static PyMethodDef rawiobase_methods[] = {
10421040
_IO__RAWIOBASE_READ_METHODDEF
10431041
_IO__RAWIOBASE_READALL_METHODDEF
@@ -1049,13 +1047,12 @@ static PyMethodDef rawiobase_methods[] = {
10491047
static PyType_Slot rawiobase_slots[] = {
10501048
{Py_tp_doc, (void *)rawiobase_doc},
10511049
{Py_tp_methods, rawiobase_methods},
1052-
{Py_tp_traverse, rawiobase_traverse},
10531050
{0, NULL},
10541051
};
10551052

10561053
PyType_Spec rawiobase_spec = {
10571054
.name = "_io._RawIOBase",
1058-
.flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC |
1055+
.flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
10591056
Py_TPFLAGS_IMMUTABLETYPE),
10601057
.slots = rawiobase_slots,
10611058
};

Modules/_io/textio.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -167,13 +167,6 @@ textiobase_errors_get(PyObject *self, void *context)
167167
Py_RETURN_NONE;
168168
}
169169

170-
static int
171-
textiobase_traverse(PyObject *self, visitproc visit, void *arg)
172-
{
173-
Py_VISIT(Py_TYPE(self));
174-
Py_VISIT(((iobase *)self)->dict);
175-
return 0;
176-
}
177170

178171
static PyMethodDef textiobase_methods[] = {
179172
_IO__TEXTIOBASE_DETACH_METHODDEF
@@ -194,13 +187,12 @@ static PyType_Slot textiobase_slots[] = {
194187
{Py_tp_doc, (void *)textiobase_doc},
195188
{Py_tp_methods, textiobase_methods},
196189
{Py_tp_getset, textiobase_getset},
197-
{Py_tp_traverse, textiobase_traverse},
198190
{0, NULL},
199191
};
200192

201193
PyType_Spec textiobase_spec = {
202194
.name = "_io._TextIOBase",
203-
.flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC |
195+
.flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
204196
Py_TPFLAGS_IMMUTABLETYPE),
205197
.slots = textiobase_slots,
206198
};

0 commit comments

Comments
 (0)