diff --git a/src/main/java/net/runelite/deob/deobfuscators/RenameUnique.java b/src/main/java/net/runelite/deob/deobfuscators/RenameUnique.java index a2f9bacc64..19926f3d25 100644 --- a/src/main/java/net/runelite/deob/deobfuscators/RenameUnique.java +++ b/src/main/java/net/runelite/deob/deobfuscators/RenameUnique.java @@ -143,9 +143,8 @@ public class RenameUnique implements Deobfuscator return list; } - private NameMappings generateClassNames(ClassGroup group) + private void generateClassNames(NameMappings map, ClassGroup group) { - NameMappings map = new NameMappings(); int i = 0; for (ClassFile cf : group.getClasses()) @@ -155,13 +154,10 @@ public class RenameUnique implements Deobfuscator map.map(cf.getPoolClass(), "class" + i++); } - - return map; } - private NameMappings generatFieldNames(ClassGroup group) + private void generatFieldNames(NameMappings map, ClassGroup group) { - NameMappings map = new NameMappings(); int i = 0; for (ClassFile cf : group.getClasses()) @@ -172,13 +168,10 @@ public class RenameUnique implements Deobfuscator map.map(field.getPoolField(), "field" + i++); } - - return map; } - private NameMappings generateMethodNames(ClassGroup group) + private void generateMethodNames(NameMappings map, ClassGroup group) { - NameMappings map = new NameMappings(); int i = 0; for (ClassFile cf : group.getClasses()) @@ -199,8 +192,6 @@ public class RenameUnique implements Deobfuscator for (Method m : virtualMethods) map.map(m.getPoolMethod(), name); } - - return map; } private void regeneratePool(ClassGroup group) @@ -222,22 +213,14 @@ public class RenameUnique implements Deobfuscator group.buildClassGraph(); group.lookup(); - NameMappings mappings = this.generateClassNames(group); + NameMappings mappings = new NameMappings(); + + this.generateClassNames(mappings, group); + this.generatFieldNames(mappings, group); + this.generateMethodNames(mappings, group); int classes = 0, fields = 0, methods = 0; - for (ClassFile cf : group.getClasses()) - { - String newName = mappings.get(cf.getPoolClass()); - if (newName == null) - continue; - - renameClass(group, cf, newName); - ++classes; - } - - mappings = this.generatFieldNames(group); - // rename fields for (ClassFile cf : group.getClasses()) for (Field field : cf.getFields().getFields()) @@ -250,8 +233,6 @@ public class RenameUnique implements Deobfuscator ++fields; } - mappings = this.generateMethodNames(group); - // rename methods for (ClassFile cf : group.getClasses()) for (Method method : cf.getMethods().getMethods()) @@ -268,6 +249,16 @@ public class RenameUnique implements Deobfuscator methods += virtualMethods.size(); } + for (ClassFile cf : group.getClasses()) + { + String newName = mappings.get(cf.getPoolClass()); + if (newName == null) + continue; + + renameClass(group, cf, newName); + ++classes; + } + this.regeneratePool(group); System.out.println("Uniquely renamed " + classes + " classes, " + fields + " fields, and " + methods + " methods");