Add another method
This commit is contained in:
@@ -9,10 +9,6 @@ public class ParallelExecutorMapping
|
||||
|
||||
public void map(Object one, Object two)
|
||||
{
|
||||
if (one.toString().equals("Z class6.field120"))
|
||||
{
|
||||
int i =5;
|
||||
}
|
||||
assert !map.containsKey(one) || map.get(one) == two;
|
||||
map.put(one, two);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.runelite.deob.execution;
|
||||
|
||||
import java.util.List;
|
||||
import net.runelite.deob.Method;
|
||||
import net.runelite.deob.attributes.code.instruction.types.ReturnInstruction;
|
||||
import net.runelite.deob.attributes.code.instructions.InvokeStatic;
|
||||
@@ -55,17 +56,6 @@ public class ParallellMappingExecutor
|
||||
// get what each frame is paused/exited on
|
||||
p1 = f1.getInstructions().get(f1.getInstructions().size() - 1);
|
||||
p2 = f2.getInstructions().get(f2.getInstructions().size() - 1);
|
||||
|
||||
if (p1.getInstruction() instanceof InvokeStatic && !(p2.getInstruction() instanceof InvokeStatic))
|
||||
{
|
||||
f1 = stepInto(f1);
|
||||
p1 = f1.getInstructions().get(f1.getInstructions().size() - 1);
|
||||
}
|
||||
else if (p2.getInstruction() instanceof InvokeStatic && !(p1.getInstruction() instanceof InvokeStatic))
|
||||
{
|
||||
f2 = stepInto(f2);
|
||||
p2 = f2.getInstructions().get(f2.getInstructions().size() - 1);
|
||||
}
|
||||
|
||||
// frames can stop executing at different times if one sees a jump
|
||||
// that has been done before, so stop both and remove the pending branch
|
||||
@@ -91,6 +81,17 @@ public class ParallellMappingExecutor
|
||||
|
||||
return step();
|
||||
}
|
||||
|
||||
if (p1.getInstruction() instanceof InvokeStatic && !(p2.getInstruction() instanceof InvokeStatic))
|
||||
{
|
||||
f1 = stepInto(f1);
|
||||
p1 = f1.getInstructions().get(f1.getInstructions().size() - 1);
|
||||
}
|
||||
else if (p2.getInstruction() instanceof InvokeStatic && !(p1.getInstruction() instanceof InvokeStatic))
|
||||
{
|
||||
f2 = stepInto(f2);
|
||||
p2 = f2.getInstructions().get(f2.getInstructions().size() - 1);
|
||||
}
|
||||
|
||||
assert e.paused;
|
||||
assert e2.paused;
|
||||
@@ -119,6 +120,10 @@ public class ParallellMappingExecutor
|
||||
assert i.getInstruction() instanceof InvokeStatic;
|
||||
|
||||
InvokeStatic is = (InvokeStatic) i.getInstruction();
|
||||
List<Method> methods = is.getMethods();
|
||||
if (methods.isEmpty()) // not my method
|
||||
return null;
|
||||
|
||||
Method to = is.getMethods().get(0);
|
||||
|
||||
Frame f2 = new Frame(e, to);
|
||||
|
||||
@@ -10,6 +10,12 @@ import org.junit.Test;
|
||||
|
||||
public class MapStaticTest
|
||||
{
|
||||
private static final String methods[][] = {
|
||||
{ "client.vmethod3054", "client.vmethod2973" },
|
||||
{ "class99.method2220", "class99.method2149" },
|
||||
{ "class146.vmethod3158", "class146.vmethod3070" },
|
||||
};
|
||||
|
||||
//@Test
|
||||
public void testMappable() throws IOException
|
||||
{
|
||||
@@ -22,14 +28,31 @@ public class MapStaticTest
|
||||
// ));
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void testAll() throws IOException
|
||||
{
|
||||
ClassGroup group1 = JarUtil.loadJar(new File("d:/rs/07/adamin1.jar"));
|
||||
ClassGroup group2 = JarUtil.loadJar(new File("d:/rs/07/adamin2.jar"));
|
||||
|
||||
for (String[] s : methods)
|
||||
{
|
||||
String[] one = s[0].split("\\."), two = s[1].split("\\.");
|
||||
|
||||
Method m1 = group1.findClass(one[0]).findMethod(one[1]);
|
||||
Method m2 = group2.findClass(two[0]).findMethod(two[1]);
|
||||
|
||||
ParallelExecutorMapping mappings = MappingExecutorUtil.map(m1, m2);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() throws IOException
|
||||
{
|
||||
ClassGroup group1 = JarUtil.loadJar(new File("c:/rs/adamin1.jar"));
|
||||
ClassGroup group2 = JarUtil.loadJar(new File("c:/rs/adamin2.jar"));
|
||||
ClassGroup group1 = JarUtil.loadJar(new File("d:/rs/07/adamin1.jar"));
|
||||
ClassGroup group2 = JarUtil.loadJar(new File("d:/rs/07/adamin2.jar"));
|
||||
|
||||
Method m1 = group1.findClass("client").findMethod("vmethod3054");
|
||||
Method m2 = group2.findClass("client").findMethod("vmethod2973");
|
||||
Method m1 = group1.findClass("class146").findMethod("vmethod3158");
|
||||
Method m2 = group2.findClass("class146").findMethod("vmethod3070");
|
||||
|
||||
ParallelExecutorMapping mappings = MappingExecutorUtil.map(m1, m2);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user