file: refactor get_table_entry() to use 1-based indexing
This commit is contained in:
parent
636e4c92ac
commit
6f9ccf209b
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue