Skip to content

Commit 1de2344

Browse files
committed
Update after review
1 parent e521430 commit 1de2344

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

dissect/util/stream.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def _readinto_unlocked(self, b: bytearray) -> int:
139139
self._fill_buf()
140140

141141
buffer_pos = self._pos - self._pos_align
142-
buffer_remaining = max(0, min(align, self._buf_size) - buffer_pos)
142+
buffer_remaining = max(0, self._buf_size - buffer_pos)
143143
read_len = min(n, buffer_remaining)
144144

145145
b[:read_len] = self._buf[buffer_pos : buffer_pos + read_len]
@@ -268,6 +268,7 @@ def __init__(self, fh: BinaryIO, offset: int, size: int, align: int = STREAM_BUF
268268
super().__init__(size, align)
269269
self._fh = fh
270270
self.offset = offset
271+
self._has_readinto = hasattr(self._fh, "readinto")
271272

272273
def _seek(self, pos: int, whence: int = io.SEEK_SET) -> int:
273274
if self.size is None and whence == io.SEEK_END:
@@ -284,11 +285,10 @@ def _read(self, offset: int, length: int) -> bytes:
284285
return self._fh.read(read_length)
285286

286287
def _readinto(self, offset: int, buf: memoryview) -> int:
287-
if not hasattr(self._fh, "readinto"):
288-
return self._readinto_fallback(offset, buf)
289-
290-
self._fh.seek(self.offset + offset)
291-
return self._fh.readinto(buf)
288+
if self._has_readinto:
289+
self._fh.seek(self.offset + offset)
290+
return self._fh.readinto(buf)
291+
return self._readinto_fallback(offset, buf)
292292

293293

294294
class RelativeStream(RangeStream):
@@ -308,7 +308,7 @@ class RelativeStream(RangeStream):
308308
align: The alignment size.
309309
"""
310310

311-
def __init__(self, fh: BinaryIO, offset: int, size: Optional[int] = None, align: int = STREAM_BUFFER_SIZE):
311+
def __init__(self, fh: BinaryIO, offset: int, size: int | None = None, align: int = STREAM_BUFFER_SIZE):
312312
super().__init__(fh, offset, size, align)
313313

314314

@@ -438,7 +438,7 @@ def __init__(
438438
runlist: list[tuple[int, int]],
439439
size: int,
440440
block_size: int,
441-
align: Optional[int] = None,
441+
align: int | None = None,
442442
):
443443
super().__init__(size, align or block_size)
444444

0 commit comments

Comments
 (0)