mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-24 08:41:16 +00:00
Return modified value instead of relying on in-place modification
This commit is contained in:
parent
43c12d804d
commit
d0b0f94dd0
@ -364,10 +364,8 @@ def get_registers(line: str):
|
|||||||
to_replace.append((reg, match.start()))
|
to_replace.append((reg, match.start()))
|
||||||
return to_replace
|
return to_replace
|
||||||
|
|
||||||
def replace_register(lines: list[str], start_line: int, reg: str, replacement: str):
|
def replace_register(lines: list[str], start_line: int, reg: str, replacement: str) -> list[str]:
|
||||||
# TODO: Use map and return lines rather than modifying parameter
|
return [line.replace(reg, replacement) if i >= start_line else line for i, line in enumerate(lines)]
|
||||||
for i in range(start_line, len(lines)):
|
|
||||||
lines[i] = lines[i].replace(reg, replacement)
|
|
||||||
|
|
||||||
# Is it possible to make new_asm the same as original_asm by swapping registers?
|
# Is it possible to make new_asm the same as original_asm by swapping registers?
|
||||||
def can_resolve_register_differences(original_asm, new_asm):
|
def can_resolve_register_differences(original_asm, new_asm):
|
||||||
@ -395,10 +393,9 @@ def can_resolve_register_differences(original_asm, new_asm):
|
|||||||
if replacing_reg != reg:
|
if replacing_reg != reg:
|
||||||
# Do a three-way swap replacing in all the subsequent lines
|
# Do a three-way swap replacing in all the subsequent lines
|
||||||
temp_reg = '&' * len(reg)
|
temp_reg = '&' * len(reg)
|
||||||
# TODO: This happens to work but it really shouldn't
|
new_asm = replace_register(new_asm, i, replacing_reg, temp_reg)
|
||||||
replace_register(new_asm, i, replacing_reg, temp_reg)
|
new_asm = replace_register(new_asm, i, reg, replacing_reg)
|
||||||
replace_register(new_asm, i, reg, replacing_reg)
|
new_asm = replace_register(new_asm, i, temp_reg, reg)
|
||||||
replace_register(new_asm, i, temp_reg, reg)
|
|
||||||
else:
|
else:
|
||||||
# No replacement to do, different code, bail out
|
# No replacement to do, different code, bail out
|
||||||
return False
|
return False
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user