summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz
diff options
context:
space:
mode:
authorGravatar modmuss502018-06-21 11:16:04 +0100
committerGravatar modmuss502018-06-21 11:16:04 +0100
commit32290667217000d9008ba667ba801a25e9ec061f (patch)
treec9a8fa9c9bbf541f43e816992d086b2d50de9215 /src/main/java/cuchaz
parentFix method parameter info sometimes causing the exported class to become inva... (diff)
downloadenigma-32290667217000d9008ba667ba801a25e9ec061f.tar.gz
enigma-32290667217000d9008ba667ba801a25e9ec061f.tar.xz
enigma-32290667217000d9008ba667ba801a25e9ec061f.zip
Recursively rebuild method names
Before it was only doing the first level of inner classes, this works on "inner inner classes"
Diffstat (limited to 'src/main/java/cuchaz')
-rw-r--r--src/main/java/cuchaz/enigma/Deobfuscator.java8
-rw-r--r--src/main/java/cuchaz/enigma/mapping/ClassMapping.java4
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 {
332 for (ClassMapping classMapping : Lists.newArrayList(getMappings().classes())) { 332 for (ClassMapping classMapping : Lists.newArrayList(getMappings().classes())) {
333 progress.onProgress(i++, classMapping.getDeobfName()); 333 progress.onProgress(i++, classMapping.getDeobfName());
334 rebuildMethodNames(classMapping, renameClassMap); 334 rebuildMethodNames(classMapping, renameClassMap);
335 for(ClassMapping innerClass : classMapping.innerClasses()){
336 rebuildMethodNames(innerClass, renameClassMap);
337 }
338 } 335 }
339 336
340 for (Map.Entry<ClassMapping, Map<Entry, String>> renameClassMapEntry : renameClassMap.entrySet()) { 337 for (Map.Entry<ClassMapping, Map<Entry, String>> renameClassMapEntry : renameClassMap.entrySet()) {
@@ -386,7 +383,12 @@ public class Deobfuscator {
386 } 383 }
387 } 384 }
388 385
386 classMapping.markDirty();
389 renameClassMap.put(classMapping, renameEntries); 387 renameClassMap.put(classMapping, renameEntries);
388
389 for(ClassMapping innerClass : classMapping.innerClasses()){
390 rebuildMethodNames(innerClass, renameClassMap);
391 }
390 } 392 }
391 393
392 394
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<ClassMapping> {
511 this.isDirty = false; 511 this.isDirty = false;
512 } 512 }
513 513
514 public void markDirty(){
515 isDirty = true;
516 }
517
514 public Mappings.EntryModifier getModifier() { 518 public Mappings.EntryModifier getModifier() {
515 return modifier; 519 return modifier;
516 } 520 }