bpo-29741: Clean up C implementations of BytesIO and StringIO. (#606) · python/cpython@7400254 (original) (raw)
`@@ -149,7 +149,7 @@ _io_BytesIO_tell(bytesio *self, PyObject *Py_UNUSED(ignored))
`
149
149
`}
`
150
150
``
151
151
`PyDoc_STRVAR(io_BytesIO_read__doc_,
`
152
``
`-
"read($self, size=None, /)\n"
`
``
152
`+
"read($self, size=-1, /)\n"
`
153
153
`"--\n"
`
154
154
`"\n"
`
155
155
`"Read at most size bytes, returned as a bytes object.\n"
`
`@@ -161,24 +161,23 @@ PyDoc_STRVAR(io_BytesIO_read__doc_,
`
161
161
` {"read", (PyCFunction)io_BytesIO_read, METH_FASTCALL, io_BytesIO_read__doc},
`
162
162
``
163
163
`static PyObject *
`
164
``
`-
_io_BytesIO_read_impl(bytesio *self, PyObject *arg);
`
``
164
`+
_io_BytesIO_read_impl(bytesio *self, Py_ssize_t size);
`
165
165
``
166
166
`static PyObject *
`
167
167
`_io_BytesIO_read(bytesio *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
`
168
168
`{
`
169
169
`PyObject *return_value = NULL;
`
170
``
`-
PyObject *arg = Py_None;
`
``
170
`+
Py_ssize_t size = -1;
`
171
171
``
172
``
`-
if (!_PyArg_UnpackStack(args, nargs, "read",
`
173
``
`-
0, 1,
`
174
``
`-
&arg)) {
`
``
172
`+
if (!_PyArg_ParseStack(args, nargs, "|O&:read",
`
``
173
`+
_PyIO_ConvertSsize_t, &size)) {
`
175
174
` goto exit;
`
176
175
` }
`
177
176
``
178
177
`if (!_PyArg_NoStackKeywords("read", kwnames)) {
`
179
178
` goto exit;
`
180
179
` }
`
181
``
`-
return_value = _io_BytesIO_read_impl(self, arg);
`
``
180
`+
return_value = _io_BytesIO_read_impl(self, size);
`
182
181
``
183
182
`exit:
`
184
183
`return return_value;
`
`@@ -197,17 +196,16 @@ PyDoc_STRVAR(io_BytesIO_read1__doc_,
`
197
196
` {"read1", (PyCFunction)io_BytesIO_read1, METH_FASTCALL, io_BytesIO_read1__doc},
`
198
197
``
199
198
`static PyObject *
`
200
``
`-
_io_BytesIO_read1_impl(bytesio *self, PyObject *size);
`
``
199
`+
_io_BytesIO_read1_impl(bytesio *self, Py_ssize_t size);
`
201
200
``
202
201
`static PyObject *
`
203
202
`_io_BytesIO_read1(bytesio *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
`
204
203
`{
`
205
204
`PyObject *return_value = NULL;
`
206
``
`-
PyObject *size = Py_None;
`
``
205
`+
Py_ssize_t size = -1;
`
207
206
``
208
``
`-
if (!_PyArg_UnpackStack(args, nargs, "read1",
`
209
``
`-
0, 1,
`
210
``
`-
&size)) {
`
``
207
`+
if (!_PyArg_ParseStack(args, nargs, "|O&:read1",
`
``
208
`+
_PyIO_ConvertSsize_t, &size)) {
`
211
209
` goto exit;
`
212
210
` }
`
213
211
``
`@@ -221,7 +219,7 @@ _io_BytesIO_read1(bytesio *self, PyObject **args, Py_ssize_t nargs, PyObject *kw
`
221
219
`}
`
222
220
``
223
221
`PyDoc_STRVAR(io_BytesIO_readline__doc_,
`
224
``
`-
"readline($self, size=None, /)\n"
`
``
222
`+
"readline($self, size=-1, /)\n"
`
225
223
`"--\n"
`
226
224
`"\n"
`
227
225
`"Next line from the file, as a bytes object.\n"
`
`@@ -234,24 +232,23 @@ PyDoc_STRVAR(io_BytesIO_readline__doc_,
`
234
232
` {"readline", (PyCFunction)io_BytesIO_readline, METH_FASTCALL, io_BytesIO_readline__doc},
`
235
233
``
236
234
`static PyObject *
`
237
``
`-
_io_BytesIO_readline_impl(bytesio *self, PyObject *arg);
`
``
235
`+
_io_BytesIO_readline_impl(bytesio *self, Py_ssize_t size);
`
238
236
``
239
237
`static PyObject *
`
240
238
`_io_BytesIO_readline(bytesio *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
`
241
239
`{
`
242
240
`PyObject *return_value = NULL;
`
243
``
`-
PyObject *arg = Py_None;
`
``
241
`+
Py_ssize_t size = -1;
`
244
242
``
245
``
`-
if (!_PyArg_UnpackStack(args, nargs, "readline",
`
246
``
`-
0, 1,
`
247
``
`-
&arg)) {
`
``
243
`+
if (!_PyArg_ParseStack(args, nargs, "|O&:readline",
`
``
244
`+
_PyIO_ConvertSsize_t, &size)) {
`
248
245
` goto exit;
`
249
246
` }
`
250
247
``
251
248
`if (!_PyArg_NoStackKeywords("readline", kwnames)) {
`
252
249
` goto exit;
`
253
250
` }
`
254
``
`-
return_value = _io_BytesIO_readline_impl(self, arg);
`
``
251
`+
return_value = _io_BytesIO_readline_impl(self, size);
`
255
252
``
256
253
`exit:
`
257
254
`return return_value;
`
`@@ -472,4 +469,4 @@ io_BytesIO___init_(PyObject *self, PyObject *args, PyObject *kwargs)
`
472
469
`exit:
`
473
470
`return return_value;
`
474
471
`}
`
475
``
`-
/[clinic end generated code: output=138ee6ad6951bc84 input=a9049054013a1b77]/
`
``
472
`+
/[clinic end generated code: output=74a856733a5d55b0 input=a9049054013a1b77]/
`