static PyObject * _io__RawIOBase_readall_impl(PyObject *self) /*[clinic end generated code: output=1987b9ce929425a0 input=688874141213622a]*/ { int r; PyObject *chunks = PyList_New(0); PyObject *result; if (chunks == NULL) return NULL; while (1) { PyObject *data = _PyObject_CallMethodId(self, &PyId_read, "i", DEFAULT_BUFFER_SIZE); if (!data) { /* NOTE: PyErr_SetFromErrno() calls PyErr_CheckSignals() when EINTR occurs so we needn't do it ourselves. */ if (_PyIO_trap_eintr()) { continue; } Py_DECREF(chunks); return NULL; } if (data == Py_None) { if (PyList_GET_SIZE(chunks) == 0) { Py_DECREF(chunks); return data; } Py_DECREF(data); break; } if (!PyBytes_Check(data)) { Py_DECREF(chunks); Py_DECREF(data); PyErr_SetString(PyExc_TypeError, "read() should return bytes"); return NULL; } if (PyBytes_GET_SIZE(data) == 0) { /* EOF */ Py_DECREF(data); break; } r = PyList_Append(chunks, data); Py_DECREF(data); if (r < 0) { Py_DECREF(chunks); return NULL; } } result = _PyBytes_Join(_PyIO_empty_bytes, chunks); Py_DECREF(chunks); return result; }
static PyObject * rawiobase_readall(PyObject *self, PyObject *args) { int r; PyObject *chunks = PyList_New(0); PyObject *result; if (chunks == NULL) return NULL; while (1) { _Py_IDENTIFIER(read); PyObject *data = _PyObject_CallMethodId(self, &PyId_read, "i", DEFAULT_BUFFER_SIZE); if (!data) { /* NOTE: PyErr_SetFromErrno() calls PyErr_CheckSignals() when EINTR occurs so we needn't do it ourselves. */ if (_PyIO_trap_eintr()) { continue; } Py_DECREF(chunks); return NULL; } if (data == Py_None) { if (PyList_GET_SIZE(chunks) == 0) { Py_DECREF(chunks); return data; } Py_DECREF(data); break; } if (!PyBytes_Check(data)) { Py_DECREF(chunks); Py_DECREF(data); PyErr_SetString(PyExc_TypeError, "read() should return bytes"); return NULL; } if (PyBytes_GET_SIZE(data) == 0) { /* EOF */ Py_DECREF(data); break; } r = PyList_Append(chunks, data); Py_DECREF(data); if (r < 0) { Py_DECREF(chunks); return NULL; } } result = _PyBytes_Join(_PyIO_empty_bytes, chunks); Py_DECREF(chunks); return result; }
static PyObject * rawiobase_readall(PyObject *self, PyObject *args) { int r; PyObject *chunks = PyList_New(0); PyObject *result; if (chunks == NULL) return NULL; while (1) { PyObject *data = PyObject_CallMethod(self, "read", "i", DEFAULT_BUFFER_SIZE); if (!data) { Py_DECREF(chunks); return NULL; } if (!PyBytes_Check(data)) { Py_DECREF(chunks); Py_DECREF(data); PyErr_SetString(PyExc_TypeError, "read() should return bytes"); return NULL; } if (PyBytes_GET_SIZE(data) == 0) { /* EOF */ Py_DECREF(data); break; } r = PyList_Append(chunks, data); Py_DECREF(data); if (r < 0) { Py_DECREF(chunks); return NULL; } } result = _PyBytes_Join(_PyIO_empty_bytes, chunks); Py_DECREF(chunks); return result; }