Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 15a0bd3

Browse files
committed
Issue #18408: Fix _PyUnicodeWriter_Finish(): clear writer->buffer,
so _PyUnicodeWriter_Dealloc() can be called on the writer after finish.
1 parent 064bbdc commit 15a0bd3

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

Objects/unicodeobject.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13157,6 +13157,7 @@ _PyUnicodeWriter_WriteCstr(_PyUnicodeWriter *writer, const char *str, Py_ssize_t
1315713157
PyObject *
1315813158
_PyUnicodeWriter_Finish(_PyUnicodeWriter *writer)
1315913159
{
13160+
PyObject *str;
1316013161
if (writer->pos == 0) {
1316113162
Py_XDECREF(writer->buffer);
1316213163
_Py_RETURN_UNICODE_EMPTY();
@@ -13174,8 +13175,10 @@ _PyUnicodeWriter_Finish(_PyUnicodeWriter *writer)
1317413175
}
1317513176
writer->buffer = newbuffer;
1317613177
}
13177-
assert(_PyUnicode_CheckConsistency(writer->buffer, 1));
13178-
return unicode_result_ready(writer->buffer);
13178+
str = writer->buffer;
13179+
writer->buffer = NULL;
13180+
assert(_PyUnicode_CheckConsistency(str, 1));
13181+
return unicode_result_ready(str);
1317913182
}
1318013183

1318113184
void

0 commit comments

Comments
 (0)