From 7996d327ff5f81e01a397e27fc50416d86f6e376 Mon Sep 17 00:00:00 2001 From: Major Date: Sun, 8 Mar 2020 10:00:55 +0000 Subject: [PATCH] Fix dummy arg removal for virtual methods Fixes an off-by-one error in the argument list. Signed-off-by: Major --- .../java/dev/openrs2/deob/transform/DummyArgTransformer.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/deob/src/main/java/dev/openrs2/deob/transform/DummyArgTransformer.kt b/deob/src/main/java/dev/openrs2/deob/transform/DummyArgTransformer.kt index 7504eca7..063bd770 100644 --- a/deob/src/main/java/dev/openrs2/deob/transform/DummyArgTransformer.kt +++ b/deob/src/main/java/dev/openrs2/deob/transform/DummyArgTransformer.kt @@ -196,11 +196,12 @@ class DummyArgTransformer : Transformer() { } val invoke = match[match.size - 1] as MethodInsnNode - val invokeArgTypes = Type.getArgumentTypes(invoke.desc).size - val constArgs = arrayOfNulls(invokeArgTypes) + var invokeArgCount = Type.getArgumentTypes(invoke.desc).size if (invoke.opcode != Opcodes.INVOKESTATIC) { - matchIndex++ + invokeArgCount++ } + + val constArgs = arrayOfNulls(invokeArgCount) for (i in constArgs.indices) { val insn = match[matchIndex++] if (insn.opcode == Opcodes.ACONST_NULL) {