https://github.com/python/cpython/commit/c947a4649a1fbadad1ca5423ed3bc5043d3cc4e4
commit: c947a4649a1fbadad1ca5423ed3bc5043d3cc4e4
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2026-09-13T07:21:18+02:00
summary:

gh-155742: Use PyBytesWriter in winconsoleio.c (#157391)

Replace soft deprecated _PyBytes_Resize() with PyBytesWriter.

files:
M Modules/_io/winconsoleio.c

diff --git a/Modules/_io/winconsoleio.c b/Modules/_io/winconsoleio.c
index e96c5bd738fe0ad..bc375e3dfe7de81 100644
--- a/Modules/_io/winconsoleio.c
+++ b/Modules/_io/winconsoleio.c
@@ -1009,7 +1009,6 @@ _io__WindowsConsoleIO_read_impl(winconsoleio *self, 
PyTypeObject *cls,
                                 Py_ssize_t size)
 /*[clinic end generated code: output=7e569a586537c0ae input=a14570a5da273365]*/
 {
-    PyObject *bytes;
     Py_ssize_t bytes_size;
 
     if (self->fd == -1)
@@ -1026,26 +1025,20 @@ _io__WindowsConsoleIO_read_impl(winconsoleio *self, 
PyTypeObject *cls,
         return NULL;
     }
 
-    bytes = PyBytes_FromStringAndSize(NULL, size);
-    if (bytes == NULL)
+    PyBytesWriter *writer = PyBytesWriter_Create(size);
+    if (writer == NULL) {
         return NULL;
+    }
 
     _PyIO_State *state = get_io_state_by_cls(cls);
-    bytes_size = readinto(state, self, PyBytes_AS_STRING(bytes),
-                          PyBytes_GET_SIZE(bytes));
+    bytes_size = readinto(state, self, PyBytesWriter_GetData(writer),
+                          PyBytesWriter_GetSize(writer));
     if (bytes_size < 0) {
-        Py_CLEAR(bytes);
+        PyBytesWriter_Discard(writer);
         return NULL;
     }
 
-    if (bytes_size < PyBytes_GET_SIZE(bytes)) {
-        if (_PyBytes_Resize(&bytes, bytes_size) < 0) {
-            Py_CLEAR(bytes);
-            return NULL;
-        }
-    }
-
-    return bytes;
+    return PyBytesWriter_FinishWithSize(writer, bytes_size);
 }
 
 /*[clinic input]

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to