From 32290667217000d9008ba667ba801a25e9ec061f Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Thu, 21 Jun 2018 11:16:04 +0100 Subject: Recursively rebuild method names Before it was only doing the first level of inner classes, this works on "inner inner classes" --- src/main/java/cuchaz/enigma/Deobfuscator.java | 8 +++++--- src/main/java/cuchaz/enigma/mapping/ClassMapping.java | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java index 1e99af2f..6ef020c7 100644 --- a/src/main/java/cuchaz/enigma/Deobfuscator.java +++ b/src/main/java/cuchaz/enigma/Deobfuscator.java @@ -332,9 +332,6 @@ public class Deobfuscator { for (ClassMapping classMapping : Lists.newArrayList(getMappings().classes())) { progress.onProgress(i++, classMapping.getDeobfName()); rebuildMethodNames(classMapping, renameClassMap); - for(ClassMapping innerClass : classMapping.innerClasses()){ - rebuildMethodNames(innerClass, renameClassMap); - } } for (Map.Entry> renameClassMapEntry : renameClassMap.entrySet()) { @@ -386,7 +383,12 @@ public class Deobfuscator { } } + classMapping.markDirty(); renameClassMap.put(classMapping, renameEntries); + + for(ClassMapping innerClass : classMapping.innerClasses()){ + rebuildMethodNames(innerClass, renameClassMap); + } } diff --git a/src/main/java/cuchaz/enigma/mapping/ClassMapping.java b/src/main/java/cuchaz/enigma/mapping/ClassMapping.java index 51751ca9..3935de5f 100644 --- a/src/main/java/cuchaz/enigma/mapping/ClassMapping.java +++ b/src/main/java/cuchaz/enigma/mapping/ClassMapping.java @@ -511,6 +511,10 @@ public class ClassMapping implements Comparable { this.isDirty = false; } + public void markDirty(){ + isDirty = true; + } + public Mappings.EntryModifier getModifier() { return modifier; } -- cgit v1.2.3