mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Use pread for ordinary reads as well
This commit is contained in:
parent
938b0b440f
commit
69240e00a4
@ -536,7 +536,7 @@ class ZipExtFile(io.BufferedIOBase):
|
||||
self._fileobj = fileobj
|
||||
self._pread_fd = pread_fd
|
||||
self._decrypter = decrypter
|
||||
self._orig_pos = pos
|
||||
self._orig_pos = self._pread_pos = pos
|
||||
|
||||
self._compress_type = zipinfo.compress_type
|
||||
self._compress_size = zipinfo.compress_size
|
||||
@ -673,7 +673,11 @@ class ZipExtFile(io.BufferedIOBase):
|
||||
nbytes = max(nbytes, self.MIN_READ_SIZE)
|
||||
nbytes = min(nbytes, self._compress_left)
|
||||
|
||||
data = self._fileobj.read(nbytes)
|
||||
if self._pread_fd > -1:
|
||||
data = pread_all(self._pread_fd, nbytes, self._pread_pos)
|
||||
self._pread_pos += len(data)
|
||||
else:
|
||||
data = self._fileobj.read(nbytes)
|
||||
self._compress_left -= len(data)
|
||||
|
||||
if data and self._decrypter is not None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user