From c760c71c3f102e44d0ab3dfbc4de473038ff29b3 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 3 Apr 2016 13:03:45 -0400 Subject: [PATCH] Make frame execute return instruction context. Had to change how wide works some. I dont know if its right. Also pop2 was totally messed up. --- .../asm/attributes/code/Instruction.java | 5 +-- .../attributes/code/instructions/AALoad.java | 4 +- .../attributes/code/instructions/AAStore.java | 4 +- .../code/instructions/AConstNull.java | 8 ++-- .../attributes/code/instructions/ALoad.java | 8 ++-- .../attributes/code/instructions/ALoad_0.java | 7 ++-- .../attributes/code/instructions/ALoad_1.java | 7 ++-- .../attributes/code/instructions/ALoad_2.java | 7 ++-- .../attributes/code/instructions/ALoad_3.java | 7 ++-- .../code/instructions/ANewArray.java | 4 +- .../attributes/code/instructions/AStore.java | 4 +- .../code/instructions/AStore_0.java | 4 +- .../code/instructions/AStore_1.java | 4 +- .../code/instructions/AStore_2.java | 4 +- .../code/instructions/AStore_3.java | 4 +- .../attributes/code/instructions/AThrow.java | 12 ++---- .../code/instructions/ArrayLength.java | 7 ++-- .../attributes/code/instructions/BALoad.java | 4 +- .../attributes/code/instructions/BAStore.java | 4 +- .../attributes/code/instructions/BiPush.java | 4 +- .../attributes/code/instructions/CALoad.java | 4 +- .../attributes/code/instructions/CAStore.java | 4 +- .../code/instructions/CheckCast.java | 4 +- .../asm/attributes/code/instructions/D2F.java | 7 ++-- .../asm/attributes/code/instructions/D2I.java | 7 ++-- .../asm/attributes/code/instructions/D2L.java | 7 ++-- .../attributes/code/instructions/DALoad.java | 4 +- .../attributes/code/instructions/DAStore.java | 4 +- .../attributes/code/instructions/DAdd.java | 4 +- .../attributes/code/instructions/DCmpG.java | 7 ++-- .../attributes/code/instructions/DCmpL.java | 7 ++-- .../code/instructions/DConst_0.java | 9 ++-- .../code/instructions/DConst_1.java | 12 +++--- .../attributes/code/instructions/DDiv.java | 4 +- .../attributes/code/instructions/DLoad.java | 4 +- .../attributes/code/instructions/DLoad_0.java | 4 +- .../attributes/code/instructions/DLoad_1.java | 4 +- .../attributes/code/instructions/DLoad_2.java | 4 +- .../attributes/code/instructions/DLoad_3.java | 4 +- .../attributes/code/instructions/DMul.java | 4 +- .../attributes/code/instructions/DNeg.java | 4 +- .../attributes/code/instructions/DRem.java | 4 +- .../attributes/code/instructions/DStore.java | 4 +- .../code/instructions/DStore_0.java | 5 +-- .../code/instructions/DStore_1.java | 4 +- .../code/instructions/DStore_2.java | 5 +-- .../code/instructions/DStore_3.java | 4 +- .../attributes/code/instructions/DSub.java | 4 +- .../asm/attributes/code/instructions/Dup.java | 4 +- .../attributes/code/instructions/Dup2.java | 4 +- .../attributes/code/instructions/Dup2_X1.java | 5 +-- .../attributes/code/instructions/Dup2_X2.java | 7 ++-- .../attributes/code/instructions/Dup_X1.java | 5 +-- .../attributes/code/instructions/Dup_X2.java | 7 ++-- .../asm/attributes/code/instructions/F2D.java | 7 ++-- .../asm/attributes/code/instructions/F2I.java | 7 ++-- .../asm/attributes/code/instructions/F2L.java | 7 ++-- .../attributes/code/instructions/FALoad.java | 4 +- .../attributes/code/instructions/FAStore.java | 4 +- .../attributes/code/instructions/FAdd.java | 4 +- .../attributes/code/instructions/FCmpG.java | 8 ++-- .../attributes/code/instructions/FCmpL.java | 8 ++-- .../code/instructions/FConst_0.java | 12 +++--- .../code/instructions/FConst_1.java | 11 +++-- .../code/instructions/FConst_2.java | 12 +++--- .../attributes/code/instructions/FDiv.java | 4 +- .../attributes/code/instructions/FLoad.java | 4 +- .../attributes/code/instructions/FLoad_0.java | 4 +- .../attributes/code/instructions/FLoad_1.java | 4 +- .../attributes/code/instructions/FLoad_2.java | 4 +- .../attributes/code/instructions/FLoad_3.java | 4 +- .../attributes/code/instructions/FMul.java | 4 +- .../attributes/code/instructions/FNeg.java | 4 +- .../attributes/code/instructions/FRem.java | 4 +- .../attributes/code/instructions/FStore.java | 4 +- .../code/instructions/FStore_0.java | 4 +- .../code/instructions/FStore_1.java | 4 +- .../code/instructions/FStore_2.java | 4 +- .../code/instructions/FStore_3.java | 4 +- .../attributes/code/instructions/FSub.java | 4 +- .../code/instructions/GetField.java | 4 +- .../code/instructions/GetStatic.java | 4 +- .../attributes/code/instructions/Goto.java | 5 ++- .../attributes/code/instructions/GotoW.java | 5 ++- .../asm/attributes/code/instructions/I2B.java | 7 ++-- .../asm/attributes/code/instructions/I2C.java | 7 ++-- .../asm/attributes/code/instructions/I2D.java | 7 ++-- .../asm/attributes/code/instructions/I2F.java | 7 ++-- .../asm/attributes/code/instructions/I2L.java | 7 ++-- .../asm/attributes/code/instructions/I2S.java | 7 ++-- .../attributes/code/instructions/IALoad.java | 4 +- .../attributes/code/instructions/IAStore.java | 4 +- .../attributes/code/instructions/IAdd.java | 7 +--- .../attributes/code/instructions/IAnd.java | 4 +- .../code/instructions/IConst_0.java | 10 ++--- .../code/instructions/IConst_1.java | 10 ++--- .../code/instructions/IConst_2.java | 9 ++-- .../code/instructions/IConst_3.java | 10 ++--- .../code/instructions/IConst_4.java | 10 ++--- .../code/instructions/IConst_5.java | 10 ++--- .../code/instructions/IConst_M1.java | 10 ++--- .../attributes/code/instructions/IDiv.java | 4 +- .../attributes/code/instructions/IInc.java | 13 +++--- .../attributes/code/instructions/ILoad.java | 11 +++-- .../attributes/code/instructions/ILoad_0.java | 4 +- .../attributes/code/instructions/ILoad_1.java | 4 +- .../attributes/code/instructions/ILoad_2.java | 4 +- .../attributes/code/instructions/ILoad_3.java | 4 +- .../attributes/code/instructions/IMul.java | 8 +--- .../attributes/code/instructions/INeg.java | 4 +- .../asm/attributes/code/instructions/IOr.java | 4 +- .../attributes/code/instructions/IRem.java | 4 +- .../attributes/code/instructions/IShL.java | 4 +- .../attributes/code/instructions/IShR.java | 4 +- .../attributes/code/instructions/IStore.java | 5 +-- .../code/instructions/IStore_0.java | 4 +- .../code/instructions/IStore_1.java | 4 +- .../code/instructions/IStore_2.java | 4 +- .../code/instructions/IStore_3.java | 4 +- .../attributes/code/instructions/ISub.java | 6 +-- .../attributes/code/instructions/IUShR.java | 4 +- .../attributes/code/instructions/IXor.java | 4 +- .../asm/attributes/code/instructions/If.java | 23 +++++------ .../asm/attributes/code/instructions/If0.java | 23 +++++------ .../code/instructions/InstanceOf.java | 15 ++++--- .../code/instructions/InvokeInterface.java | 41 +++++++++---------- .../code/instructions/InvokeSpecial.java | 39 +++++++++--------- .../code/instructions/InvokeStatic.java | 39 +++++++++--------- .../code/instructions/InvokeVirtual.java | 41 +++++++++---------- .../asm/attributes/code/instructions/L2D.java | 7 ++-- .../asm/attributes/code/instructions/L2F.java | 7 ++-- .../asm/attributes/code/instructions/L2I.java | 7 ++-- .../attributes/code/instructions/LALoad.java | 4 +- .../attributes/code/instructions/LAStore.java | 4 +- .../attributes/code/instructions/LAdd.java | 4 +- .../attributes/code/instructions/LAnd.java | 4 +- .../attributes/code/instructions/LCmp.java | 8 ++-- .../code/instructions/LConst_0.java | 4 +- .../code/instructions/LConst_1.java | 4 +- .../attributes/code/instructions/LDC2_W.java | 13 +++--- .../attributes/code/instructions/LDC_W.java | 13 +++--- .../attributes/code/instructions/LDiv.java | 4 +- .../attributes/code/instructions/LLoad.java | 11 +++-- .../attributes/code/instructions/LLoad_0.java | 4 +- .../attributes/code/instructions/LLoad_1.java | 7 ++-- .../attributes/code/instructions/LLoad_2.java | 8 ++-- .../attributes/code/instructions/LLoad_3.java | 8 ++-- .../attributes/code/instructions/LMul.java | 4 +- .../attributes/code/instructions/LNeg.java | 4 +- .../asm/attributes/code/instructions/LOr.java | 4 +- .../attributes/code/instructions/LRem.java | 4 +- .../attributes/code/instructions/LShL.java | 4 +- .../attributes/code/instructions/LShR.java | 4 +- .../attributes/code/instructions/LStore.java | 11 +++-- .../code/instructions/LStore_0.java | 4 +- .../code/instructions/LStore_1.java | 4 +- .../code/instructions/LStore_2.java | 8 ++-- .../code/instructions/LStore_3.java | 8 ++-- .../attributes/code/instructions/LSub.java | 4 +- .../attributes/code/instructions/LUShR.java | 4 +- .../attributes/code/instructions/LXor.java | 4 +- .../code/instructions/LookupSwitch.java | 17 ++++---- .../code/instructions/MonitorEnter.java | 4 +- .../code/instructions/MonitorExit.java | 4 +- .../code/instructions/MultiANewArray.java | 17 ++++---- .../asm/attributes/code/instructions/NOP.java | 6 +-- .../asm/attributes/code/instructions/New.java | 15 ++++--- .../code/instructions/NewArray.java | 11 +++-- .../asm/attributes/code/instructions/Pop.java | 4 +- .../attributes/code/instructions/Pop2.java | 27 ++++++++---- .../code/instructions/PutField.java | 19 ++++----- .../code/instructions/PutStatic.java | 17 ++++---- .../attributes/code/instructions/Return.java | 6 +-- .../attributes/code/instructions/SALoad.java | 4 +- .../attributes/code/instructions/SAStore.java | 4 +- .../attributes/code/instructions/SiPush.java | 15 ++++--- .../attributes/code/instructions/Swap.java | 4 +- .../code/instructions/TableSwitch.java | 17 ++++---- .../attributes/code/instructions/VReturn.java | 4 +- .../attributes/code/instructions/Wide.java | 17 +++----- .../net/runelite/asm/execution/Frame.java | 20 ++++----- .../runelite/asm/execution/ExecutionTest.java | 1 - 182 files changed, 618 insertions(+), 713 deletions(-) diff --git a/src/main/java/net/runelite/asm/attributes/code/Instruction.java b/src/main/java/net/runelite/asm/attributes/code/Instruction.java index e3e300edb3..42e97fba99 100644 --- a/src/main/java/net/runelite/asm/attributes/code/Instruction.java +++ b/src/main/java/net/runelite/asm/attributes/code/Instruction.java @@ -6,10 +6,9 @@ import net.runelite.asm.execution.Frame; import java.io.DataOutputStream; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import net.runelite.asm.Method; -import net.runelite.asm.attributes.code.instruction.types.JumpingInstruction; +import net.runelite.asm.execution.InstructionContext; public abstract class Instruction implements Cloneable { @@ -181,7 +180,7 @@ public abstract class Instruction implements Cloneable return type.getName() + " at pc " + frame.getPc() + " in " + frame.getMethod().getName() + " " + frame.getMethod().getDescriptor() + " class " + frame.getMethod().getCode().getAttributes().getClassFile().getName(); } - public abstract void execute(Frame e); + public abstract InstructionContext execute(Frame e); /* does this terminate a block? */ public boolean isTerminal() diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AALoad.java index b59dceae4b..6d07bfcf24 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AALoad.java @@ -17,7 +17,7 @@ public class AALoad extends Instruction implements ArrayLoad } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +32,6 @@ public class AALoad extends Instruction implements ArrayLoad ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AAStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AAStore.java index 64770fcfd9..01e80cc820 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AAStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AAStore.java @@ -15,7 +15,7 @@ public class AAStore extends ArrayStore } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -28,7 +28,7 @@ public class AAStore extends ArrayStore array.getValue().arraySet(index.getValue(), value.getValue()); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AConstNull.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AConstNull.java index d25f13eb27..cc9da792f5 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AConstNull.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AConstNull.java @@ -7,19 +7,17 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; - -import java.io.IOException; import net.runelite.asm.execution.Value; public class AConstNull extends Instruction { - public AConstNull(Instructions instructions, InstructionType type, int pc) throws IOException + public AConstNull(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -29,6 +27,6 @@ public class AConstNull extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad.java index 5e360f5e21..2b29232b1d 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad.java @@ -28,12 +28,12 @@ public class ALoad extends Instruction implements LVTInstruction, WideInstructio ++length; } - public ALoad(Instructions instructions, InstructionType type, int pc) throws IOException + public ALoad(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } - public ALoad(Instructions instructions, InstructionType type, Instruction instruction, int pc) throws IOException + public ALoad(Instructions instructions, InstructionType type, Instruction instruction, int pc) { super(instructions, type, pc); wide = true; @@ -62,7 +62,7 @@ public class ALoad extends Instruction implements LVTInstruction, WideInstructio } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -76,7 +76,7 @@ public class ALoad extends Instruction implements LVTInstruction, WideInstructio ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_0.java index 4451752b1c..067353aaf4 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_0.java @@ -11,11 +11,10 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; public class ALoad_0 extends Instruction implements LVTInstruction { - public ALoad_0(Instructions instructions, InstructionType type, int pc) throws IOException + public ALoad_0(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +25,7 @@ public class ALoad_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -40,7 +39,7 @@ public class ALoad_0 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_1.java index 5f73d46573..434caa809d 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_1.java @@ -11,11 +11,10 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; public class ALoad_1 extends Instruction implements LVTInstruction { - public ALoad_1(Instructions instructions, InstructionType type, int pc) throws IOException + public ALoad_1(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +25,7 @@ public class ALoad_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -40,7 +39,7 @@ public class ALoad_1 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_2.java index 33c95d738a..853bb01cf2 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_2.java @@ -11,11 +11,10 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; public class ALoad_2 extends Instruction implements LVTInstruction { - public ALoad_2(Instructions instructions, InstructionType type, int pc) throws IOException + public ALoad_2(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +25,7 @@ public class ALoad_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -40,7 +39,7 @@ public class ALoad_2 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_3.java index d10f3fe03d..13ed8e2a16 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ALoad_3.java @@ -11,11 +11,10 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; public class ALoad_3 extends Instruction implements LVTInstruction { - public ALoad_3(Instructions instructions, InstructionType type, int pc) throws IOException + public ALoad_3(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +25,7 @@ public class ALoad_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -40,7 +39,7 @@ public class ALoad_3 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ANewArray.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ANewArray.java index 8b008c25e4..bb3c246849 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ANewArray.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ANewArray.java @@ -44,7 +44,7 @@ public class ANewArray extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -59,7 +59,7 @@ public class ANewArray extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore.java index bf4454d077..9b77af3b19 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore.java @@ -47,7 +47,7 @@ public class AStore extends Instruction implements LVTInstruction, WideInstructi } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -58,7 +58,7 @@ public class AStore extends Instruction implements LVTInstruction, WideInstructi variables.set(index, new VariableContext(ins, object)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_0.java index ebc7d673a7..94c10e52e9 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_0.java @@ -25,7 +25,7 @@ public class AStore_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class AStore_0 extends Instruction implements LVTInstruction variables.set(0, new VariableContext(ins, object)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_1.java index e083b7e0c4..83cba175f1 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_1.java @@ -25,7 +25,7 @@ public class AStore_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class AStore_1 extends Instruction implements LVTInstruction variables.set(1, new VariableContext(ins, object)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_2.java index 96a0301342..64047f36a6 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_2.java @@ -25,7 +25,7 @@ public class AStore_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class AStore_2 extends Instruction implements LVTInstruction variables.set(2, new VariableContext(ins, object)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_3.java index 0ad39f6244..6549f5f6bb 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AStore_3.java @@ -25,7 +25,7 @@ public class AStore_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class AStore_3 extends Instruction implements LVTInstruction variables.set(3, new VariableContext(ins, object)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/AThrow.java b/src/main/java/net/runelite/asm/attributes/code/instructions/AThrow.java index 70d61df1df..ba3f66b449 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/AThrow.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/AThrow.java @@ -7,20 +7,16 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.execution.Type; - -import java.io.IOException; -import java.util.List; public class AThrow extends Instruction { - public AThrow(Instructions instructions, InstructionType type, int pc) throws IOException + public AThrow(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -29,9 +25,9 @@ public class AThrow extends Instruction StackContext exception = stack.pop(); ins.pop(exception); - frame.addInstructionContext(ins); - frame.stop(); + + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ArrayLength.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ArrayLength.java index 50bd9261a7..b6e09d9682 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ArrayLength.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ArrayLength.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class ArrayLength extends Instruction { - public ArrayLength(Instructions instructions, InstructionType type, int pc) throws IOException + public ArrayLength(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +31,6 @@ public class ArrayLength extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/BALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/BALoad.java index 0f729f2d11..85751716d2 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/BALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/BALoad.java @@ -17,7 +17,7 @@ public class BALoad extends Instruction implements ArrayLoad } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +32,6 @@ public class BALoad extends Instruction implements ArrayLoad ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/BAStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/BAStore.java index 0ae0741276..97a4a3357e 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/BAStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/BAStore.java @@ -15,7 +15,7 @@ public class BAStore extends ArrayStore } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -28,6 +28,6 @@ public class BAStore extends ArrayStore array.getValue().arraySet(index.getValue(), value.getValue()); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/BiPush.java b/src/main/java/net/runelite/asm/attributes/code/instructions/BiPush.java index f8aa520857..fd40bcc9dd 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/BiPush.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/BiPush.java @@ -47,7 +47,7 @@ public class BiPush extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -57,7 +57,7 @@ public class BiPush extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/CALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/CALoad.java index b45902c0fc..5db556714b 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/CALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/CALoad.java @@ -17,7 +17,7 @@ public class CALoad extends Instruction implements ArrayLoad } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +32,6 @@ public class CALoad extends Instruction implements ArrayLoad ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/CAStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/CAStore.java index e205a3ed70..7734704f33 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/CAStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/CAStore.java @@ -15,7 +15,7 @@ public class CAStore extends ArrayStore } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -28,6 +28,6 @@ public class CAStore extends ArrayStore array.getValue().arraySet(index.getValue(), value.getValue()); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/CheckCast.java b/src/main/java/net/runelite/asm/attributes/code/instructions/CheckCast.java index 0c7ce23613..5cf3ed7245 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/CheckCast.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/CheckCast.java @@ -41,7 +41,7 @@ public class CheckCast extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -58,7 +58,7 @@ public class CheckCast extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/D2F.java b/src/main/java/net/runelite/asm/attributes/code/instructions/D2F.java index 0bb0b13466..647c7db281 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/D2F.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/D2F.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class D2F extends Instruction { - public D2F(Instructions instructions, InstructionType type, int pc) throws IOException + public D2F(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +31,6 @@ public class D2F extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/D2I.java b/src/main/java/net/runelite/asm/attributes/code/instructions/D2I.java index 23984b7e6f..c28bb9749f 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/D2I.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/D2I.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class D2I extends Instruction { - public D2I(Instructions instructions, InstructionType type, int pc) throws IOException + public D2I(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +31,6 @@ public class D2I extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/D2L.java b/src/main/java/net/runelite/asm/attributes/code/instructions/D2L.java index d667bf6871..fcfe02b398 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/D2L.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/D2L.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class D2L extends Instruction { - public D2L(Instructions instructions, InstructionType type, int pc) throws IOException + public D2L(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +31,6 @@ public class D2L extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DALoad.java index 59dcb76052..86db377210 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DALoad.java @@ -17,7 +17,7 @@ public class DALoad extends Instruction implements ArrayLoad } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +32,6 @@ public class DALoad extends Instruction implements ArrayLoad ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DAStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DAStore.java index bfe352c973..f85609988e 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DAStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DAStore.java @@ -15,7 +15,7 @@ public class DAStore extends ArrayStore } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -28,6 +28,6 @@ public class DAStore extends ArrayStore array.getValue().arraySet(index.getValue(), value.getValue()); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DAdd.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DAdd.java index 85f37c5b18..fc5b6798ff 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DAdd.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DAdd.java @@ -17,7 +17,7 @@ public class DAdd extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class DAdd extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DCmpG.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DCmpG.java index fbcdd43e50..950fe69824 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DCmpG.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DCmpG.java @@ -8,18 +8,17 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; import net.runelite.asm.execution.Value; public class DCmpG extends Instruction { - public DCmpG(Instructions instructions, InstructionType type, int pc) throws IOException + public DCmpG(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -48,6 +47,6 @@ public class DCmpG extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DCmpL.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DCmpL.java index e8530fdc58..11c4ea96e7 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DCmpL.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DCmpL.java @@ -8,18 +8,17 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; import net.runelite.asm.execution.Value; public class DCmpL extends Instruction { - public DCmpL(Instructions instructions, InstructionType type, int pc) throws IOException + public DCmpL(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -48,6 +47,6 @@ public class DCmpL extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DConst_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DConst_0.java index 09b5d3f3e2..aa9bc2b939 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DConst_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DConst_0.java @@ -10,18 +10,17 @@ import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; import net.runelite.asm.pool.PoolEntry; -import java.io.IOException; import net.runelite.asm.execution.Value; public class DConst_0 extends Instruction implements PushConstantInstruction { - public DConst_0(Instructions instructions, InstructionType type, int pc) throws IOException + public DConst_0(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,7 +30,7 @@ public class DConst_0 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override @@ -43,6 +42,6 @@ public class DConst_0 extends Instruction implements PushConstantInstruction @Override public Instruction setConstant(PoolEntry entry) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + throw new UnsupportedOperationException("Not supported yet."); } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DConst_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DConst_1.java index 863d5ae649..f417f764f7 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DConst_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DConst_1.java @@ -8,20 +8,18 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class DConst_1 extends Instruction implements PushConstantInstruction { - public DConst_1(Instructions instructions, InstructionType type, int pc) throws IOException + public DConst_1(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,7 +29,7 @@ public class DConst_1 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override @@ -43,6 +41,6 @@ public class DConst_1 extends Instruction implements PushConstantInstruction @Override public Instruction setConstant(PoolEntry entry) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + throw new UnsupportedOperationException("Not supported yet."); } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DDiv.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DDiv.java index f52ff1f2b8..681e724745 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DDiv.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DDiv.java @@ -17,7 +17,7 @@ public class DDiv extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class DDiv extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad.java index aea5aa9a33..42c95da874 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad.java @@ -63,7 +63,7 @@ public class DLoad extends Instruction implements LVTInstruction, WideInstructio } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -78,7 +78,7 @@ public class DLoad extends Instruction implements LVTInstruction, WideInstructio ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_0.java index f6323c5f44..c85a3d72a0 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_0.java @@ -26,7 +26,7 @@ public class DLoad_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class DLoad_0 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_1.java index 186beff2f2..3fe0145ae1 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_1.java @@ -26,7 +26,7 @@ public class DLoad_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class DLoad_1 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_2.java index 57f0723d11..9dc20c0881 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_2.java @@ -26,7 +26,7 @@ public class DLoad_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class DLoad_2 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_3.java index 5c772533b4..c96f599902 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DLoad_3.java @@ -26,7 +26,7 @@ public class DLoad_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class DLoad_3 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DMul.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DMul.java index 5e040e6904..3a170ee813 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DMul.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DMul.java @@ -17,7 +17,7 @@ public class DMul extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class DMul extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DNeg.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DNeg.java index 3e1629c35e..6adc244fb3 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DNeg.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DNeg.java @@ -17,7 +17,7 @@ public class DNeg extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -38,6 +38,6 @@ public class DNeg extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DRem.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DRem.java index e425b365c1..0c3cd1e76c 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DRem.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DRem.java @@ -17,7 +17,7 @@ public class DRem extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class DRem extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore.java index f1840fa47d..87400c59bc 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore.java @@ -47,7 +47,7 @@ public class DStore extends Instruction implements LVTInstruction, WideInstructi } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -58,7 +58,7 @@ public class DStore extends Instruction implements LVTInstruction, WideInstructi variables.set(index, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_0.java index d85dcf2030..79be43a492 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_0.java @@ -11,7 +11,6 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; public class DStore_0 extends Instruction implements LVTInstruction { @@ -26,7 +25,7 @@ public class DStore_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -37,7 +36,7 @@ public class DStore_0 extends Instruction implements LVTInstruction variables.set(0, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_1.java index dd35ce785f..054c9994cf 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_1.java @@ -25,7 +25,7 @@ public class DStore_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class DStore_1 extends Instruction implements LVTInstruction variables.set(1, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_2.java index faf2e600e4..0177ac9a51 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_2.java @@ -11,7 +11,6 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; public class DStore_2 extends Instruction implements LVTInstruction { @@ -26,7 +25,7 @@ public class DStore_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -37,7 +36,7 @@ public class DStore_2 extends Instruction implements LVTInstruction variables.set(2, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_3.java index 1b4ded8e1f..3ea4825812 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DStore_3.java @@ -24,7 +24,7 @@ public class DStore_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -35,7 +35,7 @@ public class DStore_3 extends Instruction implements LVTInstruction variables.set(3, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/DSub.java b/src/main/java/net/runelite/asm/attributes/code/instructions/DSub.java index cac305df3f..781ff55900 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/DSub.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/DSub.java @@ -17,7 +17,7 @@ public class DSub extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class DSub extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup.java index db1b2ee2d8..a61bb2a4cf 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup.java @@ -19,7 +19,7 @@ public class Dup extends Instruction implements DupInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -37,7 +37,7 @@ public class Dup extends Instruction implements DupInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2.java index 48413385af..ebb6703288 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2.java @@ -19,7 +19,7 @@ public class Dup2 extends Instruction implements DupInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -59,7 +59,7 @@ public class Dup2 extends Instruction implements DupInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2_X1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2_X1.java index 1bb5754aff..e01099e885 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2_X1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2_X1.java @@ -1,6 +1,5 @@ package net.runelite.asm.attributes.code.instructions; -import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -24,7 +23,7 @@ public class Dup2_X1 extends Instruction implements DupInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -71,7 +70,7 @@ public class Dup2_X1 extends Instruction implements DupInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2_X2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2_X2.java index 5143ff5407..33d53dcb2e 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2_X2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup2_X2.java @@ -1,6 +1,5 @@ package net.runelite.asm.attributes.code.instructions; -import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -13,13 +12,13 @@ import net.runelite.asm.attributes.code.instruction.types.DupInstruction; public class Dup2_X2 extends Instruction implements DupInstruction { - public Dup2_X2(Instructions instructions, InstructionType type, int pc) throws IOException + public Dup2_X2(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -79,7 +78,7 @@ public class Dup2_X2 extends Instruction implements DupInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup_X1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup_X1.java index 6b67831d2c..669a671c30 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup_X1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup_X1.java @@ -1,6 +1,5 @@ package net.runelite.asm.attributes.code.instructions; -import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -23,7 +22,7 @@ public class Dup_X1 extends Instruction implements DupInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -48,7 +47,7 @@ public class Dup_X1 extends Instruction implements DupInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup_X2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup_X2.java index 99dd5769ea..7a64250b67 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Dup_X2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Dup_X2.java @@ -1,6 +1,5 @@ package net.runelite.asm.attributes.code.instructions; -import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -13,13 +12,13 @@ import net.runelite.asm.attributes.code.instruction.types.DupInstruction; public class Dup_X2 extends Instruction implements DupInstruction { - public Dup_X2(Instructions instructions, InstructionType type, int pc) throws IOException + public Dup_X2(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -57,7 +56,7 @@ public class Dup_X2 extends Instruction implements DupInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/F2D.java b/src/main/java/net/runelite/asm/attributes/code/instructions/F2D.java index 08eb569427..7b26ebc6b2 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/F2D.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/F2D.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class F2D extends Instruction { - public F2D(Instructions instructions, InstructionType type, int pc) throws IOException + public F2D(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class F2D extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/F2I.java b/src/main/java/net/runelite/asm/attributes/code/instructions/F2I.java index 39e2bec02d..4f351ff074 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/F2I.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/F2I.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class F2I extends Instruction { - public F2I(Instructions instructions, InstructionType type, int pc) throws IOException + public F2I(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class F2I extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/F2L.java b/src/main/java/net/runelite/asm/attributes/code/instructions/F2L.java index a61bf4951a..1b21f90ef6 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/F2L.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/F2L.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class F2L extends Instruction { - public F2L(Instructions instructions, InstructionType type, int pc) throws IOException + public F2L(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class F2L extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FALoad.java index c1a53bc52b..1b2024f95b 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FALoad.java @@ -17,7 +17,7 @@ public class FALoad extends Instruction implements ArrayLoad } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +32,6 @@ public class FALoad extends Instruction implements ArrayLoad ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FAStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FAStore.java index cfc75e8ef7..3034127615 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FAStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FAStore.java @@ -15,7 +15,7 @@ public class FAStore extends ArrayStore } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -28,6 +28,6 @@ public class FAStore extends ArrayStore array.getValue().arraySet(index.getValue(), value.getValue()); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FAdd.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FAdd.java index b0c46cc1b0..1c8042b5c9 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FAdd.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FAdd.java @@ -17,7 +17,7 @@ public class FAdd extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class FAdd extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FCmpG.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FCmpG.java index b997007cf9..9d3da29d70 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FCmpG.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FCmpG.java @@ -7,19 +7,17 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; - -import java.io.IOException; import net.runelite.asm.execution.Value; public class FCmpG extends Instruction { - public FCmpG(Instructions instructions, InstructionType type, int pc) throws IOException + public FCmpG(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -48,6 +46,6 @@ public class FCmpG extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FCmpL.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FCmpL.java index b59364f9e6..6115b37065 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FCmpL.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FCmpL.java @@ -7,19 +7,17 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; - -import java.io.IOException; import net.runelite.asm.execution.Value; public class FCmpL extends Instruction { - public FCmpL(Instructions instructions, InstructionType type, int pc) throws IOException + public FCmpL(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -48,6 +46,6 @@ public class FCmpL extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_0.java index 9e511caa1e..f026eccdaf 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_0.java @@ -8,20 +8,18 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class FConst_0 extends Instruction implements PushConstantInstruction { - public FConst_0(Instructions instructions, InstructionType type, int pc) throws IOException + public FConst_0(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,7 +29,7 @@ public class FConst_0 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override @@ -43,6 +41,6 @@ public class FConst_0 extends Instruction implements PushConstantInstruction @Override public Instruction setConstant(PoolEntry entry) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + throw new UnsupportedOperationException("Not supported yet."); } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_1.java index 3d2d766f60..5ba8d76471 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_1.java @@ -8,20 +8,19 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; +import net.runelite.asm.execution.Value; import net.runelite.asm.pool.PoolEntry; -import java.io.IOException; -import net.runelite.asm.execution.Value; public class FConst_1 extends Instruction implements PushConstantInstruction { - public FConst_1(Instructions instructions, InstructionType type, int pc) throws IOException + public FConst_1(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,7 +30,7 @@ public class FConst_1 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override @@ -43,6 +42,6 @@ public class FConst_1 extends Instruction implements PushConstantInstruction @Override public Instruction setConstant(PoolEntry entry) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + throw new UnsupportedOperationException("Not supported yet."); } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_2.java index db4af7e9aa..b4d3eeabfe 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FConst_2.java @@ -8,20 +8,18 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class FConst_2 extends Instruction implements PushConstantInstruction { - public FConst_2(Instructions instructions, InstructionType type, int pc) throws IOException + public FConst_2(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,7 +29,7 @@ public class FConst_2 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override @@ -43,6 +41,6 @@ public class FConst_2 extends Instruction implements PushConstantInstruction @Override public Instruction setConstant(PoolEntry entry) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + throw new UnsupportedOperationException("Not supported yet."); } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FDiv.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FDiv.java index f2ec4d6834..b6cd0a3398 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FDiv.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FDiv.java @@ -17,7 +17,7 @@ public class FDiv extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class FDiv extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad.java index 6be8df521a..fdd9a54b51 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad.java @@ -63,7 +63,7 @@ public class FLoad extends Instruction implements LVTInstruction, WideInstructio } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -78,7 +78,7 @@ public class FLoad extends Instruction implements LVTInstruction, WideInstructio ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_0.java index 2267543ff9..b2adafbd68 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_0.java @@ -26,7 +26,7 @@ public class FLoad_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class FLoad_0 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_1.java index a2b159886b..98036bbd5f 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_1.java @@ -26,7 +26,7 @@ public class FLoad_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class FLoad_1 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_2.java index f75c910c3e..c439598a78 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_2.java @@ -26,7 +26,7 @@ public class FLoad_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class FLoad_2 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_3.java index 01a948998b..c9e91ce448 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FLoad_3.java @@ -26,7 +26,7 @@ public class FLoad_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class FLoad_3 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FMul.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FMul.java index 9fdd771003..52e62328df 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FMul.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FMul.java @@ -17,7 +17,7 @@ public class FMul extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class FMul extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FNeg.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FNeg.java index 506a775be8..0c44cbf4bc 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FNeg.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FNeg.java @@ -17,7 +17,7 @@ public class FNeg extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -38,6 +38,6 @@ public class FNeg extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FRem.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FRem.java index c9013b8976..5d59451ade 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FRem.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FRem.java @@ -17,7 +17,7 @@ public class FRem extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class FRem extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore.java index fe89f865f2..30e8d1c782 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore.java @@ -47,7 +47,7 @@ public class FStore extends Instruction implements LVTInstruction, WideInstructi } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -58,7 +58,7 @@ public class FStore extends Instruction implements LVTInstruction, WideInstructi variables.set(index, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_0.java index c40056c456..81bd48e65b 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_0.java @@ -25,7 +25,7 @@ public class FStore_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class FStore_0 extends Instruction implements LVTInstruction variables.set(0, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_1.java index 1fa7dfae28..a1e69a883d 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_1.java @@ -25,7 +25,7 @@ public class FStore_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class FStore_1 extends Instruction implements LVTInstruction variables.set(1, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_2.java index 7f9e8e1b68..b061803679 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_2.java @@ -25,7 +25,7 @@ public class FStore_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class FStore_2 extends Instruction implements LVTInstruction variables.set(2, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_3.java index 3ed4d83597..433bd26191 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FStore_3.java @@ -25,7 +25,7 @@ public class FStore_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class FStore_3 extends Instruction implements LVTInstruction variables.set(3, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/FSub.java b/src/main/java/net/runelite/asm/attributes/code/instructions/FSub.java index 3a3c90b68a..13006823a1 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/FSub.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/FSub.java @@ -17,7 +17,7 @@ public class FSub extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class FSub extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/GetField.java b/src/main/java/net/runelite/asm/attributes/code/instructions/GetField.java index 33e42fa7f2..f6167ee561 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/GetField.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/GetField.java @@ -60,7 +60,7 @@ public class GetField extends Instruction implements GetFieldInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -73,7 +73,7 @@ public class GetField extends Instruction implements GetFieldInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/GetStatic.java b/src/main/java/net/runelite/asm/attributes/code/instructions/GetStatic.java index 9daadbaaa7..642ba08def 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/GetStatic.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/GetStatic.java @@ -60,7 +60,7 @@ public class GetStatic extends Instruction implements GetFieldInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -70,7 +70,7 @@ public class GetStatic extends Instruction implements GetFieldInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Goto.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Goto.java index 4062577379..39c22dfa84 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Goto.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Goto.java @@ -66,12 +66,13 @@ public class Goto extends Instruction implements JumpingInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ctx = new InstructionContext(this, frame); - frame.addInstructionContext(ctx); frame.jump(ctx, to); + + return ctx; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/GotoW.java b/src/main/java/net/runelite/asm/attributes/code/instructions/GotoW.java index cf793ab137..5d2fc88760 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/GotoW.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/GotoW.java @@ -44,12 +44,13 @@ public class GotoW extends Instruction implements JumpingInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ctx = new InstructionContext(this, frame); - frame.addInstructionContext(ctx); frame.jump(ctx, to); + + return ctx; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/I2B.java b/src/main/java/net/runelite/asm/attributes/code/instructions/I2B.java index 3848c06618..a4c0eea1d2 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/I2B.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/I2B.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class I2B extends Instruction { - public I2B(Instructions instructions, InstructionType type, int pc) throws IOException + public I2B(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class I2B extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/I2C.java b/src/main/java/net/runelite/asm/attributes/code/instructions/I2C.java index 44c16231b4..1fa3b974b4 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/I2C.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/I2C.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class I2C extends Instruction { - public I2C(Instructions instructions, InstructionType type, int pc) throws IOException + public I2C(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class I2C extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/I2D.java b/src/main/java/net/runelite/asm/attributes/code/instructions/I2D.java index 5eed7d613e..884c29b5e7 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/I2D.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/I2D.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class I2D extends Instruction { - public I2D(Instructions instructions, InstructionType type, int pc) throws IOException + public I2D(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class I2D extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/I2F.java b/src/main/java/net/runelite/asm/attributes/code/instructions/I2F.java index bfdebed69b..7933f3e8b8 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/I2F.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/I2F.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class I2F extends Instruction { - public I2F(Instructions instructions, InstructionType type, int pc) throws IOException + public I2F(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class I2F extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/I2L.java b/src/main/java/net/runelite/asm/attributes/code/instructions/I2L.java index 36ddb73996..1f20da26bd 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/I2L.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/I2L.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class I2L extends Instruction { - public I2L(Instructions instructions, InstructionType type, int pc) throws IOException + public I2L(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class I2L extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/I2S.java b/src/main/java/net/runelite/asm/attributes/code/instructions/I2S.java index 4a1d93873b..2ed108ad8d 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/I2S.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/I2S.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class I2S extends Instruction { - public I2S(Instructions instructions, InstructionType type, int pc) throws IOException + public I2S(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class I2S extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IALoad.java index 446a9c887d..a5b7a8c1ea 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IALoad.java @@ -17,7 +17,7 @@ public class IALoad extends Instruction implements ArrayLoad } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +32,6 @@ public class IALoad extends Instruction implements ArrayLoad ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IAStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IAStore.java index d20c007f08..32617f8646 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IAStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IAStore.java @@ -15,7 +15,7 @@ public class IAStore extends ArrayStore } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -28,6 +28,6 @@ public class IAStore extends ArrayStore array.getValue().arraySet(index.getValue(), value.getValue()); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IAdd.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IAdd.java index 42fc465c7a..a4c4ad0f12 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IAdd.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IAdd.java @@ -3,9 +3,6 @@ package net.runelite.asm.attributes.code.instructions; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.PushConstantInstruction; -import net.runelite.deob.deobfuscators.arithmetic.DMath; -import net.runelite.deob.deobfuscators.arithmetic.Encryption; import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; @@ -25,7 +22,7 @@ public class IAdd extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -49,6 +46,6 @@ public class IAdd extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IAnd.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IAnd.java index 06413daa5b..e468f4f58e 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IAnd.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IAnd.java @@ -17,7 +17,7 @@ public class IAnd extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class IAnd extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_0.java index 000e8bb1db..20cbf6a2c6 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_0.java @@ -8,14 +8,12 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class IConst_0 extends Instruction implements PushConstantInstruction { - public IConst_0(Instructions instructions, InstructionType type, int pc) throws IOException + public IConst_0(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +24,7 @@ public class IConst_0 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +34,7 @@ public class IConst_0 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_1.java index 71dfdc1e2b..d75142e09b 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_1.java @@ -8,14 +8,12 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class IConst_1 extends Instruction implements PushConstantInstruction { - public IConst_1(Instructions instructions, InstructionType type, int pc) throws IOException + public IConst_1(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +24,7 @@ public class IConst_1 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +34,7 @@ public class IConst_1 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_2.java index b4142598eb..1495e3bdea 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_2.java @@ -8,14 +8,13 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; +import net.runelite.asm.execution.Value; import net.runelite.asm.pool.PoolEntry; -import java.io.IOException; -import net.runelite.asm.execution.Value; public class IConst_2 extends Instruction implements PushConstantInstruction { - public IConst_2(Instructions instructions, InstructionType type, int pc) throws IOException + public IConst_2(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +25,7 @@ public class IConst_2 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +35,7 @@ public class IConst_2 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_3.java index 05abc792bb..757dcce294 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_3.java @@ -8,14 +8,12 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class IConst_3 extends Instruction implements PushConstantInstruction { - public IConst_3(Instructions instructions, InstructionType type, int pc) throws IOException + public IConst_3(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +24,7 @@ public class IConst_3 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +34,7 @@ public class IConst_3 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_4.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_4.java index 83dcd9aba6..69365dff74 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_4.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_4.java @@ -8,14 +8,12 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class IConst_4 extends Instruction implements PushConstantInstruction { - public IConst_4(Instructions instructions, InstructionType type, int pc) throws IOException + public IConst_4(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +24,7 @@ public class IConst_4 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +34,7 @@ public class IConst_4 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_5.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_5.java index b427fee9e2..18e199b118 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_5.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_5.java @@ -8,14 +8,12 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class IConst_5 extends Instruction implements PushConstantInstruction { - public IConst_5(Instructions instructions, InstructionType type, int pc) throws IOException + public IConst_5(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +24,7 @@ public class IConst_5 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +34,7 @@ public class IConst_5 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_M1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_M1.java index 29c2c2e596..a4d253eb65 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_M1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IConst_M1.java @@ -8,14 +8,12 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class IConst_M1 extends Instruction implements PushConstantInstruction { - public IConst_M1(Instructions instructions, InstructionType type, int pc) throws IOException + public IConst_M1(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -26,7 +24,7 @@ public class IConst_M1 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +34,7 @@ public class IConst_M1 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IDiv.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IDiv.java index 680fe201d6..54b12c6af4 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IDiv.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IDiv.java @@ -27,7 +27,7 @@ public class IDiv extends Instruction implements MappableInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -52,7 +52,7 @@ public class IDiv extends Instruction implements MappableInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IInc.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IInc.java index 382f097f51..6f91ad5ff2 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IInc.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IInc.java @@ -1,5 +1,8 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -8,14 +11,10 @@ import net.runelite.asm.attributes.code.instruction.types.WideInstruction; import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Type; +import net.runelite.asm.execution.Value; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import net.runelite.asm.execution.Value; - public class IInc extends Instruction implements LVTInstruction, WideInstruction { private short index; @@ -59,7 +58,7 @@ public class IInc extends Instruction implements LVTInstruction, WideInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Variables var = frame.getVariables(); @@ -79,7 +78,7 @@ public class IInc extends Instruction implements LVTInstruction, WideInstruction vctx = new VariableContext(ins, new Type(int.class.getCanonicalName()), value); var.set(index, vctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad.java index 30dfd4b18c..7d7e7e8362 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad.java @@ -1,5 +1,8 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -12,10 +15,6 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - public class ILoad extends Instruction implements LVTInstruction, WideInstruction { private int index; @@ -62,7 +61,7 @@ public class ILoad extends Instruction implements LVTInstruction, WideInstructio } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -77,7 +76,7 @@ public class ILoad extends Instruction implements LVTInstruction, WideInstructio ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_0.java index 3a242da324..45e57f5495 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_0.java @@ -25,7 +25,7 @@ public class ILoad_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -40,7 +40,7 @@ public class ILoad_0 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_1.java index a9ad86f737..6a95dd2ad6 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_1.java @@ -25,7 +25,7 @@ public class ILoad_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -40,7 +40,7 @@ public class ILoad_1 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_2.java index 085c87ffb6..863bdd2914 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_2.java @@ -25,7 +25,7 @@ public class ILoad_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -40,7 +40,7 @@ public class ILoad_2 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_3.java index 7a9e4abea7..91810fdf4d 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ILoad_3.java @@ -25,7 +25,7 @@ public class ILoad_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -40,7 +40,7 @@ public class ILoad_3 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IMul.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IMul.java index f1bd8751a4..db7b80617a 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IMul.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IMul.java @@ -3,10 +3,6 @@ package net.runelite.asm.attributes.code.instructions; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.PushConstantInstruction; -import net.runelite.deob.deobfuscators.arithmetic.DMath; -import net.runelite.deob.deobfuscators.arithmetic.Encryption; -import net.runelite.asm.execution.Execution; import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; @@ -26,7 +22,7 @@ public class IMul extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -50,6 +46,6 @@ public class IMul extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/INeg.java b/src/main/java/net/runelite/asm/attributes/code/instructions/INeg.java index ea5ce72e1e..a8a9b1cd86 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/INeg.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/INeg.java @@ -17,7 +17,7 @@ public class INeg extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -38,6 +38,6 @@ public class INeg extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IOr.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IOr.java index ab4658b4cc..ff0a5863fd 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IOr.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IOr.java @@ -17,7 +17,7 @@ public class IOr extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class IOr extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IRem.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IRem.java index e7c5538488..0a128804d6 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IRem.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IRem.java @@ -17,7 +17,7 @@ public class IRem extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class IRem extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IShL.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IShL.java index 99d111deac..b549f49fa9 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IShL.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IShL.java @@ -17,7 +17,7 @@ public class IShL extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class IShL extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IShR.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IShR.java index 433373c955..bd6a0bdafa 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IShR.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IShR.java @@ -17,7 +17,7 @@ public class IShR extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class IShR extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore.java index 2a3bae2c2d..e12ed1a22c 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore.java @@ -9,7 +9,6 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.execution.Type; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; @@ -48,7 +47,7 @@ public class IStore extends Instruction implements LVTInstruction, WideInstructi } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -60,7 +59,7 @@ public class IStore extends Instruction implements LVTInstruction, WideInstructi variables.set(index, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_0.java index 6ab28247ef..3c45a83e8c 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_0.java @@ -25,7 +25,7 @@ public class IStore_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -37,7 +37,7 @@ public class IStore_0 extends Instruction implements LVTInstruction variables.set(0, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_1.java index 72de8e333c..64f11f7378 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_1.java @@ -25,7 +25,7 @@ public class IStore_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -37,7 +37,7 @@ public class IStore_1 extends Instruction implements LVTInstruction variables.set(1, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_2.java index e557f4bb53..e98a32c6f4 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_2.java @@ -25,7 +25,7 @@ public class IStore_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -37,7 +37,7 @@ public class IStore_2 extends Instruction implements LVTInstruction variables.set(2, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_3.java index 1860ef1c21..d0e19218c8 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IStore_3.java @@ -25,7 +25,7 @@ public class IStore_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -37,7 +37,7 @@ public class IStore_3 extends Instruction implements LVTInstruction variables.set(3, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/ISub.java b/src/main/java/net/runelite/asm/attributes/code/instructions/ISub.java index c9cce5fde4..1648a3bcd7 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/ISub.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/ISub.java @@ -3,8 +3,6 @@ package net.runelite.asm.attributes.code.instructions; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.PushConstantInstruction; -import net.runelite.deob.deobfuscators.arithmetic.Encryption; import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; @@ -19,7 +17,7 @@ public class ISub extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -43,6 +41,6 @@ public class ISub extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IUShR.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IUShR.java index b5c88db9dd..85f1415a27 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IUShR.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IUShR.java @@ -17,7 +17,7 @@ public class IUShR extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class IUShR extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/IXor.java b/src/main/java/net/runelite/asm/attributes/code/instructions/IXor.java index 209f08d366..fb1e645ea8 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/IXor.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/IXor.java @@ -17,7 +17,7 @@ public class IXor extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class IXor extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/If.java b/src/main/java/net/runelite/asm/attributes/code/instructions/If.java index b0bb14aba7..513852a4e4 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/If.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/If.java @@ -1,15 +1,5 @@ package net.runelite.asm.attributes.code.instructions; -import net.runelite.asm.attributes.code.Instruction; -import net.runelite.asm.attributes.code.InstructionType; -import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.ComparisonInstruction; -import net.runelite.asm.attributes.code.instruction.types.JumpingInstruction; -import net.runelite.asm.execution.Frame; -import net.runelite.asm.execution.InstructionContext; -import net.runelite.asm.execution.Stack; -import net.runelite.asm.execution.StackContext; - import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; @@ -17,9 +7,18 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import net.runelite.asm.Field; +import net.runelite.asm.attributes.code.Instruction; +import net.runelite.asm.attributes.code.InstructionType; +import net.runelite.asm.attributes.code.Instructions; +import net.runelite.asm.attributes.code.instruction.types.ComparisonInstruction; import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; +import net.runelite.asm.attributes.code.instruction.types.JumpingInstruction; import net.runelite.asm.attributes.code.instruction.types.MappableInstruction; import net.runelite.asm.attributes.code.instruction.types.PushConstantInstruction; +import net.runelite.asm.execution.Frame; +import net.runelite.asm.execution.InstructionContext; +import net.runelite.asm.execution.Stack; +import net.runelite.asm.execution.StackContext; import net.runelite.deob.deobfuscators.rename.MappingExecutorUtil; import net.runelite.deob.deobfuscators.rename.PacketHandler; import net.runelite.deob.deobfuscators.rename.ParallelExecutorMapping; @@ -72,7 +71,7 @@ public abstract class If extends Instruction implements JumpingInstruction, Comp } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -87,7 +86,7 @@ public abstract class If extends Instruction implements JumpingInstruction, Comp ins.branch(other); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/If0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/If0.java index c8b4ad749c..f60b7eeb15 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/If0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/If0.java @@ -1,23 +1,22 @@ package net.runelite.asm.attributes.code.instructions; -import net.runelite.asm.attributes.code.Instruction; -import net.runelite.asm.attributes.code.InstructionType; -import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.ComparisonInstruction; -import net.runelite.asm.attributes.code.instruction.types.JumpingInstruction; -import net.runelite.asm.execution.Frame; -import net.runelite.asm.execution.InstructionContext; -import net.runelite.asm.execution.Stack; -import net.runelite.asm.execution.StackContext; - import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.List; import net.runelite.asm.Field; +import net.runelite.asm.attributes.code.Instruction; +import net.runelite.asm.attributes.code.InstructionType; +import net.runelite.asm.attributes.code.Instructions; +import net.runelite.asm.attributes.code.instruction.types.ComparisonInstruction; import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; +import net.runelite.asm.attributes.code.instruction.types.JumpingInstruction; import net.runelite.asm.attributes.code.instruction.types.MappableInstruction; +import net.runelite.asm.execution.Frame; +import net.runelite.asm.execution.InstructionContext; +import net.runelite.asm.execution.Stack; +import net.runelite.asm.execution.StackContext; import net.runelite.deob.deobfuscators.rename.MappingExecutorUtil; import net.runelite.deob.deobfuscators.rename.ParallelExecutorMapping; @@ -64,7 +63,7 @@ public abstract class If0 extends Instruction implements JumpingInstruction, Com } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -78,7 +77,7 @@ public abstract class If0 extends Instruction implements JumpingInstruction, Com ins.branch(other); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/InstanceOf.java b/src/main/java/net/runelite/asm/attributes/code/instructions/InstanceOf.java index 384a107edc..b399a68a24 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/InstanceOf.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/InstanceOf.java @@ -1,6 +1,10 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.ClassFile; +import net.runelite.asm.ClassGroup; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -8,13 +12,8 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.Class; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import net.runelite.asm.ClassGroup; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.Class; public class InstanceOf extends Instruction { @@ -41,7 +40,7 @@ public class InstanceOf extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -54,7 +53,7 @@ public class InstanceOf extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeInterface.java b/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeInterface.java index 9298f1ab7b..b0fd4240a9 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeInterface.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeInterface.java @@ -1,33 +1,32 @@ package net.runelite.asm.attributes.code.instructions; -import net.runelite.asm.ClassFile; -import net.runelite.asm.ClassGroup; -import net.runelite.asm.attributes.code.Instruction; -import net.runelite.asm.attributes.code.InstructionType; -import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; -import net.runelite.asm.execution.Frame; -import net.runelite.asm.execution.InstructionContext; -import net.runelite.asm.execution.Stack; -import net.runelite.asm.execution.StackContext; -import net.runelite.asm.execution.Type; -import net.runelite.asm.pool.InterfaceMethod; -import net.runelite.asm.pool.NameAndType; -import net.runelite.asm.pool.PoolEntry; -import net.runelite.asm.signature.Signature; - import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.List; +import net.runelite.asm.ClassFile; +import net.runelite.asm.ClassGroup; import net.runelite.asm.Field; +import net.runelite.asm.attributes.code.Instruction; +import net.runelite.asm.attributes.code.InstructionType; +import net.runelite.asm.attributes.code.Instructions; import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; +import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; +import net.runelite.asm.execution.Execution; +import net.runelite.asm.execution.Frame; +import net.runelite.asm.execution.InstructionContext; +import net.runelite.asm.execution.Stack; +import net.runelite.asm.execution.StackContext; +import net.runelite.asm.execution.Type; +import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.InterfaceMethod; +import net.runelite.asm.pool.NameAndType; +import net.runelite.asm.pool.PoolEntry; +import net.runelite.asm.signature.Signature; +import net.runelite.asm.signature.util.VirtualMethods; import net.runelite.deob.deobfuscators.rename.MappingExecutorUtil; import net.runelite.deob.deobfuscators.rename.ParallelExecutorMapping; -import net.runelite.asm.execution.Execution; -import net.runelite.asm.execution.Value; -import net.runelite.asm.signature.util.VirtualMethods; public class InvokeInterface extends Instruction implements InvokeInstruction { @@ -81,7 +80,7 @@ public class InvokeInterface extends Instruction implements InvokeInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -123,7 +122,7 @@ public class InvokeInterface extends Instruction implements InvokeInstruction execution.invoke(ins, method); } - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeSpecial.java b/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeSpecial.java index 5c88bd983f..8a8317610c 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeSpecial.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeSpecial.java @@ -1,33 +1,32 @@ package net.runelite.asm.attributes.code.instructions; -import net.runelite.asm.ClassFile; -import net.runelite.asm.ClassGroup; -import net.runelite.asm.attributes.code.Instruction; -import net.runelite.asm.attributes.code.InstructionType; -import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; -import net.runelite.asm.execution.Frame; -import net.runelite.asm.execution.InstructionContext; -import net.runelite.asm.execution.Stack; -import net.runelite.asm.execution.StackContext; -import net.runelite.asm.execution.Type; -import net.runelite.asm.pool.Method; -import net.runelite.asm.pool.NameAndType; -import net.runelite.asm.pool.PoolEntry; -import net.runelite.asm.signature.Signature; - import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import net.runelite.asm.ClassFile; +import net.runelite.asm.ClassGroup; import net.runelite.asm.Field; +import net.runelite.asm.attributes.code.Instruction; +import net.runelite.asm.attributes.code.InstructionType; +import net.runelite.asm.attributes.code.Instructions; import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; +import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; +import net.runelite.asm.execution.Execution; +import net.runelite.asm.execution.Frame; +import net.runelite.asm.execution.InstructionContext; +import net.runelite.asm.execution.Stack; +import net.runelite.asm.execution.StackContext; +import net.runelite.asm.execution.Type; +import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.Method; +import net.runelite.asm.pool.NameAndType; +import net.runelite.asm.pool.PoolEntry; +import net.runelite.asm.signature.Signature; import net.runelite.deob.deobfuscators.rename.MappingExecutorUtil; import net.runelite.deob.deobfuscators.rename.ParallelExecutorMapping; -import net.runelite.asm.execution.Execution; -import net.runelite.asm.execution.Value; public class InvokeSpecial extends Instruction implements InvokeInstruction { @@ -68,7 +67,7 @@ public class InvokeSpecial extends Instruction implements InvokeInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -110,7 +109,7 @@ public class InvokeSpecial extends Instruction implements InvokeInstruction execution.invoke(ins, method); } - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeStatic.java b/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeStatic.java index 9be9d53158..65df74f40e 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeStatic.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeStatic.java @@ -1,32 +1,31 @@ package net.runelite.asm.attributes.code.instructions; -import net.runelite.asm.ClassFile; -import net.runelite.asm.ClassGroup; -import net.runelite.asm.attributes.code.Instruction; -import net.runelite.asm.attributes.code.InstructionType; -import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; -import net.runelite.asm.execution.Frame; -import net.runelite.asm.execution.InstructionContext; -import net.runelite.asm.execution.Stack; -import net.runelite.asm.execution.StackContext; -import net.runelite.asm.execution.Type; -import net.runelite.asm.pool.Method; -import net.runelite.asm.pool.NameAndType; -import net.runelite.asm.pool.PoolEntry; -import net.runelite.asm.signature.Signature; - import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.List; +import net.runelite.asm.ClassFile; +import net.runelite.asm.ClassGroup; import net.runelite.asm.Field; +import net.runelite.asm.attributes.code.Instruction; +import net.runelite.asm.attributes.code.InstructionType; +import net.runelite.asm.attributes.code.Instructions; import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; +import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; +import net.runelite.asm.execution.Execution; +import net.runelite.asm.execution.Frame; +import net.runelite.asm.execution.InstructionContext; +import net.runelite.asm.execution.Stack; +import net.runelite.asm.execution.StackContext; +import net.runelite.asm.execution.Type; +import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.Method; +import net.runelite.asm.pool.NameAndType; +import net.runelite.asm.pool.PoolEntry; +import net.runelite.asm.signature.Signature; import net.runelite.deob.deobfuscators.rename.MappingExecutorUtil; import net.runelite.deob.deobfuscators.rename.ParallelExecutorMapping; -import net.runelite.asm.execution.Execution; -import net.runelite.asm.execution.Value; public class InvokeStatic extends Instruction implements InvokeInstruction { @@ -72,7 +71,7 @@ public class InvokeStatic extends Instruction implements InvokeInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -111,7 +110,7 @@ public class InvokeStatic extends Instruction implements InvokeInstruction execution.invoke(ins, method); } - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeVirtual.java b/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeVirtual.java index 31a42471d3..76376d6009 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeVirtual.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/InvokeVirtual.java @@ -1,33 +1,32 @@ package net.runelite.asm.attributes.code.instructions; -import net.runelite.asm.ClassFile; -import net.runelite.asm.ClassGroup; -import net.runelite.asm.attributes.code.Instruction; -import net.runelite.asm.attributes.code.InstructionType; -import net.runelite.asm.attributes.code.Instructions; -import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; -import net.runelite.asm.execution.Frame; -import net.runelite.asm.execution.InstructionContext; -import net.runelite.asm.execution.Stack; -import net.runelite.asm.execution.StackContext; -import net.runelite.asm.execution.Type; -import net.runelite.asm.pool.Method; -import net.runelite.asm.pool.NameAndType; -import net.runelite.asm.pool.PoolEntry; -import net.runelite.asm.signature.Signature; - import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.List; +import net.runelite.asm.ClassFile; +import net.runelite.asm.ClassGroup; import net.runelite.asm.Field; +import net.runelite.asm.attributes.code.Instruction; +import net.runelite.asm.attributes.code.InstructionType; +import net.runelite.asm.attributes.code.Instructions; import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; +import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; +import net.runelite.asm.execution.Execution; +import net.runelite.asm.execution.Frame; +import net.runelite.asm.execution.InstructionContext; +import net.runelite.asm.execution.Stack; +import net.runelite.asm.execution.StackContext; +import net.runelite.asm.execution.Type; +import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.Method; +import net.runelite.asm.pool.NameAndType; +import net.runelite.asm.pool.PoolEntry; +import net.runelite.asm.signature.Signature; +import net.runelite.asm.signature.util.VirtualMethods; import net.runelite.deob.deobfuscators.rename.MappingExecutorUtil; import net.runelite.deob.deobfuscators.rename.ParallelExecutorMapping; -import net.runelite.asm.execution.Execution; -import net.runelite.asm.execution.Value; -import net.runelite.asm.signature.util.VirtualMethods; public class InvokeVirtual extends Instruction implements InvokeInstruction { @@ -68,7 +67,7 @@ public class InvokeVirtual extends Instruction implements InvokeInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -110,7 +109,7 @@ public class InvokeVirtual extends Instruction implements InvokeInstruction execution.invoke(ins, method); } - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/L2D.java b/src/main/java/net/runelite/asm/attributes/code/instructions/L2D.java index 780ce62c62..5d58268139 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/L2D.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/L2D.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class L2D extends Instruction { - public L2D(Instructions instructions, InstructionType type, int pc) throws IOException + public L2D(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class L2D extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/L2F.java b/src/main/java/net/runelite/asm/attributes/code/instructions/L2F.java index 1b4ae7075e..c89c974855 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/L2F.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/L2F.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class L2F extends Instruction { - public L2F(Instructions instructions, InstructionType type, int pc) throws IOException + public L2F(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class L2F extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/L2I.java b/src/main/java/net/runelite/asm/attributes/code/instructions/L2I.java index 54ae48d791..53c70dbc88 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/L2I.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/L2I.java @@ -8,17 +8,16 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.IOException; public class L2I extends Instruction { - public L2I(Instructions instructions, InstructionType type, int pc) throws IOException + public L2I(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,6 +30,6 @@ public class L2I extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LALoad.java index 2d66026d77..a08d96a102 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LALoad.java @@ -17,7 +17,7 @@ public class LALoad extends Instruction implements ArrayLoad } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +32,6 @@ public class LALoad extends Instruction implements ArrayLoad ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LAStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LAStore.java index ab6bb8364b..75cd4909e7 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LAStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LAStore.java @@ -15,7 +15,7 @@ public class LAStore extends ArrayStore } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -28,6 +28,6 @@ public class LAStore extends ArrayStore array.getValue().arraySet(index.getValue(), value.getValue()); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LAdd.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LAdd.java index fd4e4f701d..c46ee98d6c 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LAdd.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LAdd.java @@ -17,7 +17,7 @@ public class LAdd extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LAdd extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LAnd.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LAnd.java index 4c456fff76..f4fcc5f5ab 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LAnd.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LAnd.java @@ -17,7 +17,7 @@ public class LAnd extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LAnd extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LCmp.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LCmp.java index 8214035793..4f449181e4 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LCmp.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LCmp.java @@ -7,19 +7,17 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; - -import java.io.IOException; import net.runelite.asm.execution.Value; public class LCmp extends Instruction { - public LCmp(Instructions instructions, InstructionType type, int pc) throws IOException + public LCmp(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -48,6 +46,6 @@ public class LCmp extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LConst_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LConst_0.java index c4e7c7f21a..c3214850f6 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LConst_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LConst_0.java @@ -24,7 +24,7 @@ public class LConst_0 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -34,7 +34,7 @@ public class LConst_0 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LConst_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LConst_1.java index 21f0542f67..ac524c347a 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LConst_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LConst_1.java @@ -24,7 +24,7 @@ public class LConst_1 extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -34,7 +34,7 @@ public class LConst_1 extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LDC2_W.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LDC2_W.java index f2bd430409..a018c5c06d 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LDC2_W.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LDC2_W.java @@ -1,5 +1,8 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -8,13 +11,9 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; import net.runelite.asm.execution.Value; import net.runelite.asm.pool.ConstantType; +import net.runelite.asm.pool.PoolEntry; public class LDC2_W extends Instruction implements PushConstantInstruction { @@ -65,7 +64,7 @@ public class LDC2_W extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -75,7 +74,7 @@ public class LDC2_W extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LDC_W.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LDC_W.java index b5a785c8ab..96042ba3b8 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LDC_W.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LDC_W.java @@ -1,5 +1,8 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -8,13 +11,9 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; import net.runelite.asm.execution.Value; import net.runelite.asm.pool.ConstantType; +import net.runelite.asm.pool.PoolEntry; public class LDC_W extends Instruction implements PushConstantInstruction { @@ -101,7 +100,7 @@ public class LDC_W extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -111,7 +110,7 @@ public class LDC_W extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LDiv.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LDiv.java index 131055c627..00d19c0bb4 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LDiv.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LDiv.java @@ -17,7 +17,7 @@ public class LDiv extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LDiv extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad.java index 235ecbe16b..9212474acb 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad.java @@ -1,5 +1,8 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -13,10 +16,6 @@ import net.runelite.asm.execution.Type; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - public class LLoad extends Instruction implements LVTInstruction, WideInstruction { private int index; @@ -63,7 +62,7 @@ public class LLoad extends Instruction implements LVTInstruction, WideInstructio } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -78,7 +77,7 @@ public class LLoad extends Instruction implements LVTInstruction, WideInstructio ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_0.java index 854d604943..b8fda442af 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_0.java @@ -26,7 +26,7 @@ public class LLoad_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,7 +41,7 @@ public class LLoad_0 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_1.java index caed8beaf9..676be9905f 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_1.java @@ -1,5 +1,6 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -12,8 +13,6 @@ import net.runelite.asm.execution.Type; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; - public class LLoad_1 extends Instruction implements LVTInstruction { public LLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException @@ -27,7 +26,7 @@ public class LLoad_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -42,7 +41,7 @@ public class LLoad_1 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_2.java index 5da2d0fd32..247233a32a 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_2.java @@ -12,11 +12,9 @@ import net.runelite.asm.execution.Type; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; - public class LLoad_2 extends Instruction implements LVTInstruction { - public LLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException + public LLoad_2(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -27,7 +25,7 @@ public class LLoad_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -42,7 +40,7 @@ public class LLoad_2 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_3.java index 04867b641a..edf4e454e1 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LLoad_3.java @@ -12,11 +12,9 @@ import net.runelite.asm.execution.Type; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; - public class LLoad_3 extends Instruction implements LVTInstruction { - public LLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException + public LLoad_3(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -27,7 +25,7 @@ public class LLoad_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -42,7 +40,7 @@ public class LLoad_3 extends Instruction implements LVTInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LMul.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LMul.java index c11ed0981b..dd2462ad59 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LMul.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LMul.java @@ -23,7 +23,7 @@ public class LMul extends Instruction @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -47,6 +47,6 @@ public class LMul extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LNeg.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LNeg.java index f0393b6062..d125e1e961 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LNeg.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LNeg.java @@ -17,7 +17,7 @@ public class LNeg extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -38,6 +38,6 @@ public class LNeg extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LOr.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LOr.java index d9144f0c33..e1a8c20eb6 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LOr.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LOr.java @@ -17,7 +17,7 @@ public class LOr extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LOr extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LRem.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LRem.java index 57eee54ef3..d04e007326 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LRem.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LRem.java @@ -17,7 +17,7 @@ public class LRem extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LRem extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LShL.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LShL.java index 32223e3b90..e071a6c398 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LShL.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LShL.java @@ -17,7 +17,7 @@ public class LShL extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LShL extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LShR.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LShR.java index 1ace82e19c..8ccf0e7132 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LShR.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LShR.java @@ -17,7 +17,7 @@ public class LShR extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LShR extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore.java index 1d840b0531..918b71d48d 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore.java @@ -1,5 +1,8 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -13,10 +16,6 @@ import net.runelite.asm.execution.Type; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - public class LStore extends Instruction implements LVTInstruction, WideInstruction { private int index; @@ -48,7 +47,7 @@ public class LStore extends Instruction implements LVTInstruction, WideInstructi } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -60,7 +59,7 @@ public class LStore extends Instruction implements LVTInstruction, WideInstructi variables.set(index, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_0.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_0.java index 608804ecbd..3d3ee71d6c 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_0.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_0.java @@ -26,7 +26,7 @@ public class LStore_0 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -38,7 +38,7 @@ public class LStore_0 extends Instruction implements LVTInstruction variables.set(0, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_1.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_1.java index 3fab32442c..0724ed2329 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_1.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_1.java @@ -26,7 +26,7 @@ public class LStore_1 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -38,7 +38,7 @@ public class LStore_1 extends Instruction implements LVTInstruction variables.set(1, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_2.java index e81b98e990..645470f546 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_2.java @@ -12,11 +12,9 @@ import net.runelite.asm.execution.Type; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; - public class LStore_2 extends Instruction implements LVTInstruction { - public LStore_2(Instructions instructions, InstructionType type, int pc) throws IOException + public LStore_2(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -27,7 +25,7 @@ public class LStore_2 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -39,7 +37,7 @@ public class LStore_2 extends Instruction implements LVTInstruction variables.set(2, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_3.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_3.java index 9b57a232a1..e4a7593896 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_3.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LStore_3.java @@ -12,11 +12,9 @@ import net.runelite.asm.execution.Type; import net.runelite.asm.execution.VariableContext; import net.runelite.asm.execution.Variables; -import java.io.IOException; - public class LStore_3 extends Instruction implements LVTInstruction { - public LStore_3(Instructions instructions, InstructionType type, int pc) throws IOException + public LStore_3(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -27,7 +25,7 @@ public class LStore_3 extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -39,7 +37,7 @@ public class LStore_3 extends Instruction implements LVTInstruction variables.set(3, new VariableContext(ins, value)); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LSub.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LSub.java index e6c1c48e08..19c9f78eff 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LSub.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LSub.java @@ -17,7 +17,7 @@ public class LSub extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LSub extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LUShR.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LUShR.java index bd7eb97bef..c72b6a5750 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LUShR.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LUShR.java @@ -17,7 +17,7 @@ public class LUShR extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LUShR extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LXor.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LXor.java index e70334e1b7..f152ec2373 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LXor.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LXor.java @@ -17,7 +17,7 @@ public class LXor extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -41,6 +41,6 @@ public class LXor extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/LookupSwitch.java b/src/main/java/net/runelite/asm/attributes/code/instructions/LookupSwitch.java index 576ab15ed8..756295a1a6 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/LookupSwitch.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/LookupSwitch.java @@ -1,5 +1,11 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -9,13 +15,6 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - public class LookupSwitch extends Instruction implements JumpingInstruction { private List branchi = new ArrayList<>(); @@ -101,7 +100,7 @@ public class LookupSwitch extends Instruction implements JumpingInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -122,7 +121,7 @@ public class LookupSwitch extends Instruction implements JumpingInstruction frame.jump(ins, defi); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/MonitorEnter.java b/src/main/java/net/runelite/asm/attributes/code/instructions/MonitorEnter.java index 2e998028bc..c9523fa37b 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/MonitorEnter.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/MonitorEnter.java @@ -16,7 +16,7 @@ public class MonitorEnter extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -24,6 +24,6 @@ public class MonitorEnter extends Instruction StackContext object = stack.pop(); ins.pop(object); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/MonitorExit.java b/src/main/java/net/runelite/asm/attributes/code/instructions/MonitorExit.java index f5eadc13d3..a23e91e5d2 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/MonitorExit.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/MonitorExit.java @@ -16,7 +16,7 @@ public class MonitorExit extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -24,6 +24,6 @@ public class MonitorExit extends Instruction StackContext object = stack.pop(); ins.pop(object); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/MultiANewArray.java b/src/main/java/net/runelite/asm/attributes/code/instructions/MultiANewArray.java index b710f69dce..205489a777 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/MultiANewArray.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/MultiANewArray.java @@ -1,6 +1,10 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.ClassFile; +import net.runelite.asm.ClassGroup; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -9,13 +13,8 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.Type; -import net.runelite.asm.pool.Class; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import net.runelite.asm.ClassGroup; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.Class; public class MultiANewArray extends Instruction { @@ -23,7 +22,7 @@ public class MultiANewArray extends Instruction private int dimensions; private ClassFile myClass; - public MultiANewArray(Instructions instructions, InstructionType type, int pc) throws IOException + public MultiANewArray(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -45,7 +44,7 @@ public class MultiANewArray extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -65,7 +64,7 @@ public class MultiANewArray extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/NOP.java b/src/main/java/net/runelite/asm/attributes/code/instructions/NOP.java index 4197d7c959..b36b3f4586 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/NOP.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/NOP.java @@ -6,7 +6,6 @@ import net.runelite.asm.attributes.code.Instructions; import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; -import java.io.IOException; public class NOP extends Instruction { @@ -21,9 +20,8 @@ public class NOP extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { - InstructionContext ctx = new InstructionContext(this, frame); - frame.addInstructionContext(ctx); + return new InstructionContext(this, frame); } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/New.java b/src/main/java/net/runelite/asm/attributes/code/instructions/New.java index 12678fe2cc..7ff6edbe82 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/New.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/New.java @@ -1,6 +1,10 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.ClassFile; +import net.runelite.asm.ClassGroup; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -9,13 +13,8 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.Type; -import net.runelite.asm.pool.Class; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import net.runelite.asm.ClassGroup; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.Class; public class New extends Instruction { @@ -42,7 +41,7 @@ public class New extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -52,7 +51,7 @@ public class New extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } public Class getNewClass() diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/NewArray.java b/src/main/java/net/runelite/asm/attributes/code/instructions/NewArray.java index 41001d1fda..0cd8b8c351 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/NewArray.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/NewArray.java @@ -1,5 +1,8 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -8,10 +11,6 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; import net.runelite.asm.execution.Type; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; import net.runelite.asm.execution.Value; public class NewArray extends Instruction @@ -43,7 +42,7 @@ public class NewArray extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -87,7 +86,7 @@ public class NewArray extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Pop.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Pop.java index 13d0161bf4..e42cd06494 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Pop.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Pop.java @@ -21,13 +21,13 @@ public class Pop extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); StackContext value = frame.getStack().pop(); ins.pop(value); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Pop2.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Pop2.java index 67d41f5588..6348e599fc 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Pop2.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Pop2.java @@ -4,22 +4,35 @@ import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; import net.runelite.asm.execution.Frame; +import net.runelite.asm.execution.InstructionContext; +import net.runelite.asm.execution.Stack; +import net.runelite.asm.execution.StackContext; +import net.runelite.asm.execution.Type; -import java.io.IOException; public class Pop2 extends Instruction { - public Pop2(Instructions instructions, InstructionType type, int pc) throws IOException + public Pop2(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { - Object obj = frame.getStack().pop(); - if (obj instanceof Double || obj instanceof Long) - return; - frame.getStack().pop(); + InstructionContext ins = new InstructionContext(this, frame); + Stack stack = frame.getStack(); + + StackContext value = stack.pop(); + ins.pop(value); + + //Object obj = frame.getStack().pop(); + if (value.getType().equals(new Type(double.class.getCanonicalName())) || value.getType().equals(new Type(long.class.getCanonicalName()))) + return ins; + + value = stack.pop(); + ins.pop(value); + + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/PutField.java b/src/main/java/net/runelite/asm/attributes/code/instructions/PutField.java index d86e011b5c..ef80e145fa 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/PutField.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/PutField.java @@ -1,9 +1,15 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.ClassFile; +import net.runelite.asm.Method; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; +import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; +import net.runelite.asm.attributes.code.instruction.types.PushConstantInstruction; import net.runelite.asm.attributes.code.instruction.types.SetFieldInstruction; import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; @@ -12,13 +18,6 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.pool.Class; import net.runelite.asm.pool.Field; import net.runelite.asm.pool.NameAndType; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import net.runelite.asm.Method; -import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; -import net.runelite.asm.attributes.code.instruction.types.PushConstantInstruction; import net.runelite.deob.deobfuscators.rename.MappingExecutorUtil; import net.runelite.deob.deobfuscators.rename.ParallelExecutorMapping; @@ -27,7 +26,7 @@ public class PutField extends Instruction implements SetFieldInstruction private Field field; private net.runelite.asm.Field myField; - public PutField(Instructions instructions, InstructionType type, int pc) throws IOException + public PutField(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -54,7 +53,7 @@ public class PutField extends Instruction implements SetFieldInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -63,7 +62,7 @@ public class PutField extends Instruction implements SetFieldInstruction StackContext object = stack.pop(); ins.pop(value, object); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/PutStatic.java b/src/main/java/net/runelite/asm/attributes/code/instructions/PutStatic.java index 8ac43c7300..80fa8e7f82 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/PutStatic.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/PutStatic.java @@ -1,9 +1,14 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.ClassFile; +import net.runelite.asm.Method; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; +import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; import net.runelite.asm.attributes.code.instruction.types.SetFieldInstruction; import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; @@ -12,12 +17,6 @@ import net.runelite.asm.execution.StackContext; import net.runelite.asm.pool.Class; import net.runelite.asm.pool.Field; import net.runelite.asm.pool.NameAndType; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import net.runelite.asm.Method; -import net.runelite.asm.attributes.code.instruction.types.GetFieldInstruction; import net.runelite.deob.deobfuscators.rename.MappingExecutorUtil; import net.runelite.deob.deobfuscators.rename.ParallelExecutorMapping; @@ -26,7 +25,7 @@ public class PutStatic extends Instruction implements SetFieldInstruction private Field field; private net.runelite.asm.Field myField; - public PutStatic(Instructions instructions, InstructionType type, int pc) throws IOException + public PutStatic(Instructions instructions, InstructionType type, int pc) { super(instructions, type, pc); } @@ -53,7 +52,7 @@ public class PutStatic extends Instruction implements SetFieldInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -61,7 +60,7 @@ public class PutStatic extends Instruction implements SetFieldInstruction StackContext object = stack.pop(); ins.pop(object); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Return.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Return.java index 9650d8be11..539e5efb82 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Return.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Return.java @@ -23,7 +23,7 @@ public class Return extends Instruction implements ReturnInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -31,9 +31,9 @@ public class Return extends Instruction implements ReturnInstruction StackContext object = stack.pop(); ins.pop(object); - frame.addInstructionContext(ins); - frame.stop(); + + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/SALoad.java b/src/main/java/net/runelite/asm/attributes/code/instructions/SALoad.java index 8b02f27653..d05e1d7c93 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/SALoad.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/SALoad.java @@ -17,7 +17,7 @@ public class SALoad extends Instruction implements ArrayLoad } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -32,6 +32,6 @@ public class SALoad extends Instruction implements ArrayLoad ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/SAStore.java b/src/main/java/net/runelite/asm/attributes/code/instructions/SAStore.java index c1b2a72292..3f7753bc4a 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/SAStore.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/SAStore.java @@ -15,7 +15,7 @@ public class SAStore extends ArrayStore } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -28,6 +28,6 @@ public class SAStore extends ArrayStore array.getValue().arraySet(index.getValue(), value.getValue()); - frame.addInstructionContext(ins); + return ins; } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/SiPush.java b/src/main/java/net/runelite/asm/attributes/code/instructions/SiPush.java index a169187350..529a29f08c 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/SiPush.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/SiPush.java @@ -1,5 +1,8 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -8,12 +11,8 @@ import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import net.runelite.asm.pool.PoolEntry; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; import net.runelite.asm.execution.Value; +import net.runelite.asm.pool.PoolEntry; public class SiPush extends Instruction implements PushConstantInstruction { @@ -47,7 +46,7 @@ public class SiPush extends Instruction implements PushConstantInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -57,7 +56,7 @@ public class SiPush extends Instruction implements PushConstantInstruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override @@ -69,6 +68,6 @@ public class SiPush extends Instruction implements PushConstantInstruction @Override public Instruction setConstant(PoolEntry entry) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + throw new UnsupportedOperationException("Not supported yet."); } } diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Swap.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Swap.java index d0e7d26920..0a11802e75 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Swap.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Swap.java @@ -16,7 +16,7 @@ public class Swap extends Instruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -36,7 +36,7 @@ public class Swap extends Instruction ins.push(ctx); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/TableSwitch.java b/src/main/java/net/runelite/asm/attributes/code/instructions/TableSwitch.java index 0ee269bbcb..046749ee36 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/TableSwitch.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/TableSwitch.java @@ -1,5 +1,11 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -9,13 +15,6 @@ import net.runelite.asm.execution.InstructionContext; import net.runelite.asm.execution.Stack; import net.runelite.asm.execution.StackContext; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - public class TableSwitch extends Instruction implements JumpingInstruction { private List branchi = new ArrayList<>(); @@ -98,7 +97,7 @@ public class TableSwitch extends Instruction implements JumpingInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); Stack stack = frame.getStack(); @@ -119,7 +118,7 @@ public class TableSwitch extends Instruction implements JumpingInstruction frame.jump(ins, defi); - frame.addInstructionContext(ins); + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/VReturn.java b/src/main/java/net/runelite/asm/attributes/code/instructions/VReturn.java index 852d5be004..8ec3b164eb 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/VReturn.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/VReturn.java @@ -21,12 +21,14 @@ public class VReturn extends Instruction implements ReturnInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { InstructionContext ins = new InstructionContext(this, frame); frame.addInstructionContext(ins); frame.stop(); + + return ins; } @Override diff --git a/src/main/java/net/runelite/asm/attributes/code/instructions/Wide.java b/src/main/java/net/runelite/asm/attributes/code/instructions/Wide.java index ae4f1b77fe..17dd3e96ae 100644 --- a/src/main/java/net/runelite/asm/attributes/code/instructions/Wide.java +++ b/src/main/java/net/runelite/asm/attributes/code/instructions/Wide.java @@ -1,5 +1,9 @@ package net.runelite.asm.attributes.code.instructions; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.lang.reflect.Constructor; import net.runelite.asm.attributes.code.Instruction; import net.runelite.asm.attributes.code.InstructionType; import net.runelite.asm.attributes.code.Instructions; @@ -8,11 +12,6 @@ import net.runelite.asm.attributes.code.instruction.types.WideInstruction; import net.runelite.asm.execution.Frame; import net.runelite.asm.execution.InstructionContext; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.lang.reflect.Constructor; - public class Wide extends Instruction implements LVTInstruction { private Instruction ins; @@ -59,13 +58,9 @@ public class Wide extends Instruction implements LVTInstruction } @Override - public void execute(Frame frame) + public InstructionContext execute(Frame frame) { - InstructionContext ctx = new InstructionContext(this, frame); - - ins.execute(frame); - - frame.addInstructionContext(ctx); + return ins.execute(frame); } @Override diff --git a/src/main/java/net/runelite/asm/execution/Frame.java b/src/main/java/net/runelite/asm/execution/Frame.java index 602f7b17b5..ea55dfe568 100644 --- a/src/main/java/net/runelite/asm/execution/Frame.java +++ b/src/main/java/net/runelite/asm/execution/Frame.java @@ -12,6 +12,7 @@ import net.runelite.asm.pool.NameAndType; import net.runelite.asm.attributes.code.instruction.types.InvokeInstruction; import net.runelite.asm.attributes.code.instruction.types.MappableInstruction; import net.runelite.asm.attributes.code.instructions.InvokeStatic; +import net.runelite.asm.attributes.code.instructions.Wide; public class Frame { @@ -210,10 +211,12 @@ public class Frame while (executing) { Instruction oldCur = cur; + InstructionContext ictx; try { - cur.execute(this); + ictx = cur.execute(this); + this.addInstructionContext(ictx); } catch (Throwable ex) { @@ -232,14 +235,12 @@ public class Frame throw ex; } - InstructionContext ictx = this.instructions.get(this.instructions.size() - 1); - - assert ictx.getInstruction() == oldCur; + assert ictx.getInstruction() == oldCur || oldCur instanceof Wide; execution.contexts.put(oldCur, ictx); execution.executed.add(oldCur); - processExceptions(oldCur); + processExceptions(ictx); if (!executing) break; @@ -280,19 +281,16 @@ public class Frame return instructions.isEmpty() ? null : instructions.get(instructions.size() - 1); } - private void processExceptions(Instruction i) + private void processExceptions(InstructionContext ictx) { if (this.execution.step) return; // no frame.other Code code = method.getCode(); - InstructionContext ictx = instructions.get(instructions.size() - 1); - - assert ictx.getInstruction() == i; for (Exception e : code.getExceptions().getExceptions()) { - if (e.getStart() == i) + if (e.getStart() == ictx.getInstruction()) { Frame f = dup(); Stack stack = f.getStack(); @@ -300,7 +298,7 @@ public class Frame while (stack.getSize() > 0) stack.pop(); - InstructionContext ins = new InstructionContext(i, f); + InstructionContext ins = new InstructionContext(ictx.getInstruction(), f); StackContext ctx = new StackContext(ins, new Type("java/lang/Exception"), Value.NULL); stack.push(ctx); diff --git a/src/test/java/net/runelite/asm/execution/ExecutionTest.java b/src/test/java/net/runelite/asm/execution/ExecutionTest.java index 6248a102fd..398adbda99 100644 --- a/src/test/java/net/runelite/asm/execution/ExecutionTest.java +++ b/src/test/java/net/runelite/asm/execution/ExecutionTest.java @@ -1,6 +1,5 @@ package net.runelite.asm.execution; -import net.runelite.asm.execution.Execution; import java.io.File; import net.runelite.asm.ClassGroup; import net.runelite.deob.deobfuscators.rename.MapStaticTest;