cpython: d605c6b8095c (original) (raw)
Mercurial > cpython
changeset 84521:d605c6b8095c
Issue #18408: _PyUnicodeWriter_Finish() now clears its buffer attribute in all cases, so _PyUnicodeWriter_Dealloc() can be called after finish. [#18408]
Victor Stinner victor.stinner@gmail.com | |
---|---|
date | Tue, 09 Jul 2013 00:37:24 +0200 |
parents | ed0c9d77e179 |
children | 549d8d3297f2 |
files | Objects/unicodeobject.c |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-)[+] [-] Objects/unicodeobject.c 9 |
line wrap: on
line diff
--- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -13159,18 +13159,21 @@ PyObject * { PyObject *str; if (writer->pos == 0) {
Py_XDECREF(writer->buffer);[](#l1.7)
assert(PyUnicode_GET_LENGTH(writer->buffer) == writer->pos);[](#l1.12)
return writer->buffer;[](#l1.13)
str = writer->buffer;[](#l1.14)
writer->buffer = NULL;[](#l1.15)
assert(PyUnicode_GET_LENGTH(str) == writer->pos);[](#l1.16)
} if (PyUnicode_GET_LENGTH(writer->buffer) != writer->pos) { PyObject *newbuffer; newbuffer = resize_compact(writer->buffer, writer->pos); if (newbuffer == NULL) { Py_DECREF(writer->buffer);return str;[](#l1.17)
writer->buffer = NULL;[](#l1.24) return NULL;[](#l1.25) }[](#l1.26) writer->buffer = newbuffer;[](#l1.27)