Commit 9dee3042 authored by Daniel Holth's avatar Daniel Holth

Issue #18585: speed zipfile import by only generating zipfile._ZipDecryptor on demand

parent daeffd2c
...@@ -475,13 +475,15 @@ class _ZipDecrypter: ...@@ -475,13 +475,15 @@ class _ZipDecrypter:
crc = ((crc >> 1) & 0x7FFFFFFF) crc = ((crc >> 1) & 0x7FFFFFFF)
table[i] = crc table[i] = crc
return table return table
crctable = _GenerateCRCTable() crctable = None
def _crc32(self, ch, crc): def _crc32(self, ch, crc):
"""Compute the CRC32 primitive on one byte.""" """Compute the CRC32 primitive on one byte."""
return ((crc >> 8) & 0xffffff) ^ self.crctable[(crc ^ ch) & 0xff] return ((crc >> 8) & 0xffffff) ^ self.crctable[(crc ^ ch) & 0xff]
def __init__(self, pwd): def __init__(self, pwd):
if _ZipDecrypter.crctable is None:
_ZipDecrypter.crctable = _ZipDecrypter._GenerateCRCTable()
self.key0 = 305419896 self.key0 = 305419896
self.key1 = 591751049 self.key1 = 591751049
self.key2 = 878082192 self.key2 = 878082192
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment