From 770e1f6b2fcabf8664dc77123d0de4d95a05c72e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 13 Feb 2016 20:54:44 -0500 Subject: [PATCH] resolve multidimensional arrays --- .../deob/deobfuscators/rename/MappingExecutorUtil.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/net/runelite/deob/deobfuscators/rename/MappingExecutorUtil.java b/src/main/java/net/runelite/deob/deobfuscators/rename/MappingExecutorUtil.java index 0679be9343..88d26709bd 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/rename/MappingExecutorUtil.java +++ b/src/main/java/net/runelite/deob/deobfuscators/rename/MappingExecutorUtil.java @@ -7,12 +7,14 @@ import java.util.stream.Collectors; import net.runelite.deob.ClassGroup; import net.runelite.deob.Method; 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.InvokeInstruction; 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.ReturnInstruction; 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.execution.Execution; import net.runelite.deob.execution.Frame; @@ -265,6 +267,13 @@ public class MappingExecutorUtil 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) { LVTInstruction lvt = (LVTInstruction) ctx.getInstruction();