From 980ae60b914acb0f4458fc2fcc5efb460df69090 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 14 Jul 2023 12:52:25 -0400 Subject: [PATCH] Use memoryview to avoid unnecessary copies while splitting Extras. --- Lib/zipfile/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Lib/zipfile/__init__.py b/Lib/zipfile/__init__.py index cd1d7a0669867e..2c963de18e4f95 100644 --- a/Lib/zipfile/__init__.py +++ b/Lib/zipfile/__init__.py @@ -209,8 +209,10 @@ def read_one(cls, raw): @classmethod def split(cls, data): - while data: - extra, data = _Extra.read_one(data) + # use memoryview for zero-copy slices + rest = memoryview(data) + while rest: + extra, rest = _Extra.read_one(rest) yield extra @classmethod