Skip to content

Commit ca6bbc0

Browse files
committed
Implement htree, and fix linear scan performance
1 parent 7da3188 commit ca6bbc0

4 files changed

Lines changed: 370 additions & 78 deletions

File tree

‎ext4/directory.py‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,15 @@ def __init__(self, directory: "Directory", offset: int) -> None:
3636

3737
@override
3838
def read_from_volume(self) -> None:
39-
data = self.directory._open().read()[self.offset : self.offset + self.size] # pyright: ignore[reportPrivateUsage]
39+
reader = self.directory._open() # pyright: ignore[reportPrivateUsage]
40+
_ = reader.seek(self.offset)
41+
data = reader.read(self.size)
4042
_ = memmove(addressof(self), data, self.size)
4143

4244

4345
class DirectoryEntryBase(DirectoryEntryStruct):
4446
__slots__: tuple[str, ...] = ()
47+
4548
@property
4649
def name_bytes(self) -> bytes:
4750
return bytes(self.name)[: self.name_len] # pyright: ignore[reportAny]

0 commit comments

Comments
 (0)