summaryrefslogtreecommitdiffstats
path: root/Modules/_io/stringio.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/_io/stringio.c')
-rw-r--r--Modules/_io/stringio.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c
index 13d3b87..3eb2570 100644
--- a/Modules/_io/stringio.c
+++ b/Modules/_io/stringio.c
@@ -583,6 +583,9 @@ static int
stringio_traverse(stringio *self, visitproc visit, void *arg)
{
Py_VISIT(Py_TYPE(self));
+ Py_VISIT(self->readnl);
+ Py_VISIT(self->writenl);
+ Py_VISIT(self->decoder);
Py_VISIT(self->dict);
return 0;
}
@@ -590,6 +593,9 @@ stringio_traverse(stringio *self, visitproc visit, void *arg)
static int
stringio_clear(stringio *self)
{
+ Py_CLEAR(self->readnl);
+ Py_CLEAR(self->writenl);
+ Py_CLEAR(self->decoder);
Py_CLEAR(self->dict);
return 0;
}
@@ -605,10 +611,7 @@ stringio_dealloc(stringio *self)
self->buf = NULL;
}
_PyUnicodeWriter_Dealloc(&self->writer);
- Py_CLEAR(self->readnl);
- Py_CLEAR(self->writenl);
- Py_CLEAR(self->decoder);
- Py_CLEAR(self->dict);
+ (void)stringio_clear(self);
if (self->weakreflist != NULL) {
PyObject_ClearWeakRefs((PyObject *) self);
}