From: Ross Lagerwall Date: Thu, 17 May 2012 17:49:27 +0000 (+0200) Subject: Issue #13031: Small speed-up for tarfile when unzipping tarfiles. X-Git-Tag: v3.3.0a4~140^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=468ff4c3ed07b815898a749eca14e9ae1ea76893;p=python Issue #13031: Small speed-up for tarfile when unzipping tarfiles. Patch by Justin Peel. --- diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 9d38421ef6..854967751d 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -245,8 +245,8 @@ def calc_chksums(buf): the high bit set. So we calculate two checksums, unsigned and signed. """ - unsigned_chksum = 256 + sum(struct.unpack("148B", buf[:148]) + struct.unpack("356B", buf[156:512])) - signed_chksum = 256 + sum(struct.unpack("148b", buf[:148]) + struct.unpack("356b", buf[156:512])) + unsigned_chksum = 256 + sum(struct.unpack_from("148B8x356B", buf)) + signed_chksum = 256 + sum(struct.unpack_from("148b8x356b", buf)) return unsigned_chksum, signed_chksum def copyfileobj(src, dst, length=None): diff --git a/Misc/ACKS b/Misc/ACKS index b9750b92ae..fc65795c7a 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -776,6 +776,7 @@ Gaël Pasgrimaud Joe Peterson Randy Pausch Samuele Pedroni +Justin Peel Marcel van der Peijl Berker Peksag Steven Pemberton diff --git a/Misc/NEWS b/Misc/NEWS index 456f256a2a..c83d3d36ab 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -38,6 +38,9 @@ Core and Builtins Library ------- +- Issue #13031: Small speed-up for tarfile when unzipping tarfiles. + Patch by Justin Peel. + - Issue #14780: urllib.request.urlopen() now has a ``cadefault`` argument to use the default certificate store. Initial patch by James Oakley.