diff -r 7757e98a9f3b Lib/gzip.py --- a/Lib/gzip.py Tue Mar 17 06:56:11 2015 +0200 +++ b/Lib/gzip.py Tue Mar 17 15:15:34 2015 +0100 @@ -336,15 +336,17 @@ # Convert data type if called by io.BufferedWriter. if isinstance(data, memoryview): - data = data.tobytes() + length = data.nbytes + else: + length = len(data) - if len(data) > 0: - self.size = self.size + len(data) + if length > 0: + self.size = self.size + length self.crc = zlib.crc32(data, self.crc) & 0xffffffff self.fileobj.write( self.compress.compress(data) ) - self.offset += len(data) + self.offset += length - return len(data) + return length def read(self, size=-1): self._check_closed()