diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2009-10-24 11:59:41 +0000 |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2009-10-24 11:59:41 +0000 |
commit | f98a267be374508c04faa4200f552804399faed8 (patch) | |
tree | 9bc0e9ada7b01b26211123037c18367aff7b978e /Modules/_io/bytesio.c | |
parent | 5f029ce66420c3259a6655dc52769edf494c5248 (diff) | |
download | cpython-git-f98a267be374508c04faa4200f552804399faed8.tar.gz |
Manual py3k backport: [svn r74155] Issue #6242: Fix deallocator of io.StringIO and io.BytesIO
Diffstat (limited to 'Modules/_io/bytesio.c')
-rw-r--r-- | Modules/_io/bytesio.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c index ed2f7cc51d..f477550b86 100644 --- a/Modules/_io/bytesio.c +++ b/Modules/_io/bytesio.c @@ -616,11 +616,14 @@ bytesio_close(bytesio *self) static void bytesio_dealloc(bytesio *self) { + _PyObject_GC_UNTRACK(self); if (self->buf != NULL) { PyMem_Free(self->buf); self->buf = NULL; } - Py_TYPE(self)->tp_clear((PyObject *)self); + Py_CLEAR(self->dict); + if (self->weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *) self); Py_TYPE(self)->tp_free(self); } @@ -674,7 +677,6 @@ static int bytesio_traverse(bytesio *self, visitproc visit, void *arg) { Py_VISIT(self->dict); - Py_VISIT(self->weakreflist); return 0; } @@ -682,8 +684,6 @@ static int bytesio_clear(bytesio *self) { Py_CLEAR(self->dict); - if (self->weakreflist != NULL) - PyObject_ClearWeakRefs((PyObject *)self); return 0; } |