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._fileobj = fileobj
|
||||||
self._pread_fd = pread_fd
|
self._pread_fd = pread_fd
|
||||||
self._decrypter = decrypter
|
self._decrypter = decrypter
|
||||||
self._orig_pos = pos
|
self._orig_pos = self._pread_pos = pos
|
||||||
|
|
||||||
self._compress_type = zipinfo.compress_type
|
self._compress_type = zipinfo.compress_type
|
||||||
self._compress_size = zipinfo.compress_size
|
self._compress_size = zipinfo.compress_size
|
||||||
@ -673,7 +673,11 @@ class ZipExtFile(io.BufferedIOBase):
|
|||||||
nbytes = max(nbytes, self.MIN_READ_SIZE)
|
nbytes = max(nbytes, self.MIN_READ_SIZE)
|
||||||
nbytes = min(nbytes, self._compress_left)
|
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)
|
self._compress_left -= len(data)
|
||||||
|
|
||||||
if data and self._decrypter is not None:
|
if data and self._decrypter is not None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user