From: Daniel Holth Date: Fri, 3 Jan 2014 04:17:21 +0000 (-0500) Subject: Issue #18585: speed zipfile import by only generating zipfile._ZipDecryptor on demand X-Git-Tag: v3.4.0b2~40 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9dee304205d34a8565f922fdad5b0f89fcff65a5;p=python Issue #18585: speed zipfile import by only generating zipfile._ZipDecryptor on demand --- diff --git a/Lib/zipfile.py b/Lib/zipfile.py index fad52a246d..173d99080c 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -475,13 +475,15 @@ class _ZipDecrypter: crc = ((crc >> 1) & 0x7FFFFFFF) table[i] = crc return table - crctable = _GenerateCRCTable() + crctable = None def _crc32(self, ch, crc): """Compute the CRC32 primitive on one byte.""" return ((crc >> 8) & 0xffffff) ^ self.crctable[(crc ^ ch) & 0xff] def __init__(self, pwd): + if _ZipDecrypter.crctable is None: + _ZipDecrypter.crctable = _ZipDecrypter._GenerateCRCTable() self.key0 = 305419896 self.key1 = 591751049 self.key2 = 878082192