From 7f1bba769c31df73b0c75928e2f502b073f43313 Mon Sep 17 00:00:00 2001 From: laggardkernel Date: Wed, 8 Dec 2021 19:03:29 +0800 Subject: [PATCH] Do bytearray shrinking unconditionally in Python 3 --- tornado/iostream.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) 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: -- 2.47.2