diff options
author | Helmut Grohne <helmut@subdivi.de> | 2015-04-16 17:46:07 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2015-04-16 17:46:07 +0200 |
commit | ff6ed4554a712bab5c93d15f1c556bed9df9632d (patch) | |
tree | 02ec0da9608122bd2d9cf89347c120800820bc67 /dedup | |
parent | c96530adeec7b72b34d0069e1aa8473b3994e801 (diff) | |
download | debian-dedup-ff6ed4554a712bab5c93d15f1c556bed9df9632d.tar.gz |
zlib.crc32 behaves inconsistently on py2 vs py3
zlib.crc32 returns a int32_t on py2 and a uint32_t on py3.
Diffstat (limited to 'dedup')
-rw-r--r-- | dedup/compression.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/dedup/compression.py b/dedup/compression.py index 4385f1d..cc65bbf 100644 --- a/dedup/compression.py +++ b/dedup/compression.py @@ -1,6 +1,9 @@ import struct +import sys import zlib +crc32_type = "L" if sys.version_info.major >= 3 else "l" + class GzipDecompressor(object): """An interface to gzip which is similar to bz2.BZ2Decompressor and lzma.LZMADecompressor.""" @@ -60,7 +63,7 @@ class GzipDecompressor(object): elif not self.sawheader: return self.inbuffer else: - expect = struct.pack("<ll", self.crc, self.size) + expect = struct.pack("<" + crc32_type + "L", self.crc, self.size) if self.inbuffer.startswith(expect) and \ self.inbuffer[len(expect):].replace(b"\0", b"") == b"": return b"" |