mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-26 09:41:15 +00:00
Address review comments
This commit is contained in:
parent
f6ce99fbe4
commit
fea86afac2
@ -263,7 +263,8 @@ def _add_match_in_array(
|
|||||||
SymbolType.POINTER if scalar_type_pointer(type_id) else SymbolType.DATA,
|
SymbolType.POINTER if scalar_type_pointer(type_id) else SymbolType.DATA,
|
||||||
name,
|
name,
|
||||||
name,
|
name,
|
||||||
4,
|
# we only need the matches when they are referenced elsewhere, hence we don't need the size
|
||||||
|
size=None,
|
||||||
)
|
)
|
||||||
self._db.set_pair(orig_addr, recomp_addr)
|
self._db.set_pair(orig_addr, recomp_addr)
|
||||||
|
|
||||||
@ -286,31 +287,26 @@ def _add_match_in_array(
|
|||||||
data_type = self.cv.types.keys[node.data_type.key.lower()]
|
data_type = self.cv.types.keys[node.data_type.key.lower()]
|
||||||
|
|
||||||
if data_type["type"] == "LF_ARRAY":
|
if data_type["type"] == "LF_ARRAY":
|
||||||
array_size_bytes = data_type["size"]
|
|
||||||
|
|
||||||
array_type = self.cv.types.get(data_type["array_type"])
|
array_element_type = self.cv.types.get(data_type["array_type"])
|
||||||
|
|
||||||
assert array_type.size is not None
|
assert node.data_type.members is not None
|
||||||
array_type_size = array_type.size
|
|
||||||
|
|
||||||
array_length, modulus = divmod(array_size_bytes, array_type_size)
|
for i, array_element in enumerate(node.data_type.members):
|
||||||
assert modulus == 0
|
orig_element_base_addr = orig_addr + array_element.offset
|
||||||
|
recomp_element_base_addr = recomp_addr + array_element.offset
|
||||||
for i in range(array_length):
|
if array_element_type.members is None:
|
||||||
orig_element_base_addr = orig_addr + i * array_type_size
|
|
||||||
recomp_element_base_addr = recomp_addr + i * array_type_size
|
|
||||||
if array_type.members is None:
|
|
||||||
_add_match_in_array(
|
_add_match_in_array(
|
||||||
f"{name}[{i}]",
|
f"{name}[{i}]",
|
||||||
array_type.key,
|
array_element_type.key,
|
||||||
orig_element_base_addr,
|
orig_element_base_addr,
|
||||||
recomp_element_base_addr,
|
recomp_element_base_addr,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
for member in array_type.members:
|
for member in array_element_type.members:
|
||||||
_add_match_in_array(
|
_add_match_in_array(
|
||||||
f"{name}[{i}].{member.name}",
|
f"{name}[{i}].{member.name}",
|
||||||
array_type.key,
|
array_element_type.key,
|
||||||
orig_element_base_addr + member.offset,
|
orig_element_base_addr + member.offset,
|
||||||
recomp_element_base_addr + member.offset,
|
recomp_element_base_addr + member.offset,
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user