I need a better solution than having to edit the jumpgraph all the time

This commit is contained in:
Adam
2015-10-02 22:50:32 -04:00
parent 3e6213ea52
commit 1608d84b39
2 changed files with 18 additions and 11 deletions

View File

@@ -79,14 +79,14 @@ public class Instructions
public void remove(Instruction ins)
{
for (Instruction i : instructions)
{
if (i instanceof JumpingInstruction)
{
JumpingInstruction j = (JumpingInstruction) i;
assert !j.getJumps().contains(ins);
}
}
// for (Instruction i : instructions)
// {
// if (i instanceof JumpingInstruction)
// {
// JumpingInstruction j = (JumpingInstruction) i;
// assert !j.getJumps().contains(ins);
// }
// }
ins.remove();
instructions.remove(ins);

View File

@@ -203,8 +203,8 @@ public class MethodInliner implements Deobfuscator
fromI.jump.remove(invokeIns);
fromI.replace(invokeIns, firstParamStore);
fromI.jump.add(firstParamStore);
firstParamStore.from.add(fromI);
}
invokeIns.from.clear();
@@ -225,8 +225,14 @@ public class MethodInliner implements Deobfuscator
// instead of return, jump to next instruction after the invoke
Instruction oldI = i;
i = new Goto(methodInstructions, nextInstruction);
assert methodInstructions.getInstructions().contains(nextInstruction);
i.jump.addAll(oldI.jump);
assert oldI != nextInstruction;
i.jump.add(nextInstruction);
nextInstruction.from.add(i);
assert oldI.jump.isEmpty();
//i.jump.addAll(oldI.jump);
i.from.addAll(oldI.from);
for (Instruction i2 : oldI.from)
@@ -249,7 +255,8 @@ public class MethodInliner implements Deobfuscator
if (oldI != i)
{
i.jump.addAll(oldI.jump);
assert oldI.jump.isEmpty();
//i.jump.addAll(oldI.jump);
i.from.addAll(oldI.from);
for (Instruction i2 : oldI.from)