From: Victor Stinner Date: Wed, 25 May 2011 20:01:33 +0000 (+0200) Subject: Fast path for IncrementalNewlineDecoder.decode() in io.TextIOWrapper.read(-1) X-Git-Tag: v3.3.0a1~2183^2~102 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fd8211372dc61374dd0280385285b64f190df28b;p=thirdparty%2FPython%2Fcpython.git Fast path for IncrementalNewlineDecoder.decode() in io.TextIOWrapper.read(-1) Copy/paste code from textiowrapper_read_chunk(). --- diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index 35bd922b8eb9..70d062b16f13 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -1513,8 +1513,13 @@ textiowrapper_read(textio *self, PyObject *args) PyObject *decoded; if (bytes == NULL) goto fail; - decoded = PyObject_CallMethodObjArgs(self->decoder, _PyIO_str_decode, - bytes, Py_True, NULL); + + if (Py_TYPE(self->decoder) == &PyIncrementalNewlineDecoder_Type) + decoded = _PyIncrementalNewlineDecoder_decode(self->decoder, + bytes, 1); + else + decoded = PyObject_CallMethodObjArgs( + self->decoder, _PyIO_str_decode, bytes, Py_True, NULL); Py_DECREF(bytes); if (decoded == NULL) goto fail;