From 8ff2f4776a8c16b247242ea48ed0e79ceec36a01 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 22 Aug 2015 14:58:21 -0400 Subject: [PATCH] Only onsider non static methods in fieldmover, note why fieldmover is broken --- src/main/java/net/runelite/deob/Deob.java | 5 ++++- .../java/net/runelite/deob/deobfuscators/FieldMover.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/runelite/deob/Deob.java b/src/main/java/net/runelite/deob/Deob.java index fe4d4addaa..e4a2f0e852 100644 --- a/src/main/java/net/runelite/deob/Deob.java +++ b/src/main/java/net/runelite/deob/Deob.java @@ -18,6 +18,7 @@ import java.util.jar.Manifest; import net.runelite.deob.deobfuscators.ConstantParameter; import net.runelite.deob.deobfuscators.IllegalStateExceptions; import net.runelite.deob.deobfuscators.MethodInliner; +import net.runelite.deob.deobfuscators.RenameUnique; import net.runelite.deob.deobfuscators.RuntimeExceptions; import net.runelite.deob.deobfuscators.UnreachedCode; import net.runelite.deob.deobfuscators.UnusedClass; @@ -107,7 +108,9 @@ public class Deob // // new FieldInliner().run(group); - new FieldMover().run(group); + // XXX this is broken because when moving clinit around, some fields can depend on other fields + // (like multianewarray) + //new FieldMover().run(group); //new UnusedClass().run(group); diff --git a/src/main/java/net/runelite/deob/deobfuscators/FieldMover.java b/src/main/java/net/runelite/deob/deobfuscators/FieldMover.java index 649a3b702c..c91d85e9f8 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/FieldMover.java +++ b/src/main/java/net/runelite/deob/deobfuscators/FieldMover.java @@ -69,7 +69,7 @@ public class FieldMover implements Deobfuscator if (fi instanceof PutStatic) clinits.put(field, (PutStatic) fi); } - else + else if (!m.isStatic()) // I think non static methods are always right? { if (fields.containsKey(field)) {