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]/

`