resolve multidimensional arrays
This commit is contained in:
@@ -7,12 +7,14 @@ import java.util.stream.Collectors;
|
|||||||
import net.runelite.deob.ClassGroup;
|
import net.runelite.deob.ClassGroup;
|
||||||
import net.runelite.deob.Method;
|
import net.runelite.deob.Method;
|
||||||
import net.runelite.deob.attributes.code.Instruction;
|
import net.runelite.deob.attributes.code.Instruction;
|
||||||
|
import net.runelite.deob.attributes.code.instruction.types.ComparisonInstruction;
|
||||||
import net.runelite.deob.attributes.code.instruction.types.DupInstruction;
|
import net.runelite.deob.attributes.code.instruction.types.DupInstruction;
|
||||||
import net.runelite.deob.attributes.code.instruction.types.InvokeInstruction;
|
import net.runelite.deob.attributes.code.instruction.types.InvokeInstruction;
|
||||||
import net.runelite.deob.attributes.code.instruction.types.LVTInstruction;
|
import net.runelite.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import net.runelite.deob.attributes.code.instruction.types.MappableInstruction;
|
import net.runelite.deob.attributes.code.instruction.types.MappableInstruction;
|
||||||
import net.runelite.deob.attributes.code.instruction.types.ReturnInstruction;
|
import net.runelite.deob.attributes.code.instruction.types.ReturnInstruction;
|
||||||
import net.runelite.deob.attributes.code.instruction.types.SetFieldInstruction;
|
import net.runelite.deob.attributes.code.instruction.types.SetFieldInstruction;
|
||||||
|
import net.runelite.deob.attributes.code.instructions.AALoad;
|
||||||
import net.runelite.deob.attributes.code.instructions.InvokeStatic;
|
import net.runelite.deob.attributes.code.instructions.InvokeStatic;
|
||||||
import net.runelite.deob.execution.Execution;
|
import net.runelite.deob.execution.Execution;
|
||||||
import net.runelite.deob.execution.Frame;
|
import net.runelite.deob.execution.Frame;
|
||||||
@@ -265,6 +267,13 @@ public class MappingExecutorUtil
|
|||||||
return resolve(s.getPushed(), s);
|
return resolve(s.getPushed(), s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ctx.getInstruction() instanceof AALoad)
|
||||||
|
{
|
||||||
|
// might be multidimensional array
|
||||||
|
StackContext s = ctx.getPops().get(1);
|
||||||
|
return resolve(s.getPushed(), s);
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx.getInstruction() instanceof LVTInstruction)
|
if (ctx.getInstruction() instanceof LVTInstruction)
|
||||||
{
|
{
|
||||||
LVTInstruction lvt = (LVTInstruction) ctx.getInstruction();
|
LVTInstruction lvt = (LVTInstruction) ctx.getInstruction();
|
||||||
|
|||||||
Reference in New Issue
Block a user