file: refactor get_table_entry() to use 1-based indexing

This commit is contained in:
Shiz 2020-06-01 20:29:04 +02:00
parent 636e4c92ac
commit 6f9ccf209b
1 changed files with 6 additions and 6 deletions

View File

@ -68,7 +68,7 @@ class CLITableWrapper:
return self.__file.get_table_entry(table, val)
elif isinstance(type, CLITableRange):
table = type.type
if self.__index + 1 < self.__file.get_table_size(self.__table):
if self.__index < self.__file.get_table_size(self.__table):
next = self.__file.get_table_entry(self.__table, self.__index + 1)
end = min(self.__file.get_table_size(table), getattr(next.__child, name))
else:
@ -122,13 +122,15 @@ class CLIFile:
self.streams[type] = stream
def get_table(self, t):
return (CLITableWrapper(self, t, i, x) for i, x in enumerate(self.streams[CLIStreamType.Metadata].tables[t]))
return (CLITableWrapper(self, t, i + 1, x) for i, x in enumerate(self.streams[CLIStreamType.Metadata].tables[t]))
def get_table_size(self, t):
return len(self.streams[CLIStreamType.Metadata].tables[t])
def get_table_entry(self, t, i):
return CLITableWrapper(self, t, i, self.streams[CLIStreamType.Metadata].tables[t][i])
if not i:
return None
return CLITableWrapper(self, t, i, self.streams[CLIStreamType.Metadata].tables[t][i - 1])
def get_string_at(self, i):
buf = bytearray()
@ -166,9 +168,7 @@ class CLIFile:
return self.streams[CLIStreamType.GUID].guids[i - 1]
def get_by_token(self, t):
if not t.row:
return None
return self.get_table_entry(t.table, t.row - 1)
return self.get_table_entry(t.table, t.row)
@property
def entrypoint(self):