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)) {