diff --git a/src/main/java/net/runelite/deob/deobfuscators/rename/MappingExecutorUtil.java b/src/main/java/net/runelite/deob/deobfuscators/rename/MappingExecutorUtil.java index 16e0436ffe..ecb46f5a14 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/rename/MappingExecutorUtil.java +++ b/src/main/java/net/runelite/deob/deobfuscators/rename/MappingExecutorUtil.java @@ -112,12 +112,26 @@ public class MappingExecutorUtil mi1.map(mappings, p1, p2); assert e.frames.size() == e2.frames.size(); + //checkConsistency(e, e2); e.paused = e2.paused = false; } return mappings; } + private static void checkConsistency(Execution e, Execution e2) + { + assert e.frames.size() == e2.frames.size(); + + for (int i = 0; i < e.frames.size(); ++i) + { + Frame f1 = e.frames.get(i), f2 = e2.frames.get(i); + + assert f1.other == f2; + assert f2.other == f1; + } + } + public static boolean isMappable(InvokeInstruction ii) { String className; diff --git a/src/main/java/net/runelite/deob/execution/ParallellMappingExecutor.java b/src/main/java/net/runelite/deob/execution/ParallellMappingExecutor.java index 90fbe8b93b..9fdb613d02 100644 --- a/src/main/java/net/runelite/deob/execution/ParallellMappingExecutor.java +++ b/src/main/java/net/runelite/deob/execution/ParallellMappingExecutor.java @@ -73,7 +73,7 @@ public class ParallellMappingExecutor assert fork1.getBranches().size() == 1; //assert fork1.getBranches().get(0) == f1; - int i1 = e.frames.indexOf(fork1.getFrame()); + int i1 = e.frames.indexOf(fork1.getFrame()); // this might be -1 because it is now in an invokestatic. AHhh. int i2 = e.frames.indexOf(fork1.getBranches().get(0)); // remove fork1.frame @@ -354,6 +354,7 @@ public class ParallellMappingExecutor // replace frame with returnTo assert e.frames.get(0) == f; e.frames.remove(0); + assert !e.frames.contains(f.returnTo); e.frames.add(0, f.returnTo); assert f.other.other == f;