From: laggardkernel Date: Wed, 8 Dec 2021 11:03:29 +0000 (+0800) Subject: Do bytearray shrinking unconditionally in Python 3 X-Git-Tag: v6.3.0b1~33^2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F3087%2Fhead;p=thirdparty%2Ftornado.git Do bytearray shrinking unconditionally in Python 3 --- diff --git a/tornado/iostream.py b/tornado/iostream.py index 333d5366f..5f2f7f6df 100644 --- a/tornado/iostream.py +++ b/tornado/iostream.py @@ -195,11 +195,9 @@ class _StreamBuffer(object): pos += size size = 0 else: - # Amortized O(1) shrink for Python 2 pos += size - if len(b) <= 2 * pos: - del typing.cast(bytearray, b)[:pos] - pos = 0 + del typing.cast(bytearray, b)[:pos] + pos = 0 size = 0 assert size == 0 @@ -1006,12 +1004,8 @@ class BaseIOStream(object): ).tobytes() self._read_buffer_pos += loc self._read_buffer_size -= loc - # Amortized O(1) shrink - # (this heuristic is implemented natively in Python 3.4+ - # but is replicated here for Python 2) - if self._read_buffer_pos > self._read_buffer_size: - del self._read_buffer[: self._read_buffer_pos] - self._read_buffer_pos = 0 + del self._read_buffer[: self._read_buffer_pos] + self._read_buffer_pos = 0 return b def _check_closed(self) -> None: