summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/cuchaz/enigma/Deobfuscator.java16
-rw-r--r--src/main/java/cuchaz/enigma/analysis/JarIndex.java3
-rw-r--r--src/main/java/cuchaz/enigma/analysis/TranslationIndex.java2
-rw-r--r--src/main/java/cuchaz/enigma/gui/GuiController.java2
-rw-r--r--src/test/java/cuchaz/enigma/TestDeobfed.java6
-rw-r--r--src/test/java/cuchaz/enigma/TestInnerClasses.java4
6 files changed, 15 insertions, 18 deletions
diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java
index 6bbfd072..bdd8873f 100644
--- a/src/main/java/cuchaz/enigma/Deobfuscator.java
+++ b/src/main/java/cuchaz/enigma/Deobfuscator.java
@@ -46,7 +46,6 @@ import java.util.jar.JarOutputStream;
46public class Deobfuscator { 46public class Deobfuscator {
47 47
48 private final ReferencedEntryPool entryPool = new ReferencedEntryPool(); 48 private final ReferencedEntryPool entryPool = new ReferencedEntryPool();
49 private final JarFile jar;
50 private final ParsedJar parsedJar; 49 private final ParsedJar parsedJar;
51 private final DecompilerSettings settings; 50 private final DecompilerSettings settings;
52 private final JarIndex jarIndex; 51 private final JarIndex jarIndex;
@@ -54,9 +53,8 @@ public class Deobfuscator {
54 private final Map<TranslationDirection, Translator> translatorCache; 53 private final Map<TranslationDirection, Translator> translatorCache;
55 private Mappings mappings; 54 private Mappings mappings;
56 55
57 public Deobfuscator(JarFile jar) throws IOException { 56 public Deobfuscator(ParsedJar jar) {
58 this.jar = jar; 57 this.parsedJar = jar;
59 this.parsedJar = new ParsedJar(jar);
60 58
61 // build the jar index 59 // build the jar index
62 this.jarIndex = new JarIndex(entryPool); 60 this.jarIndex = new JarIndex(entryPool);
@@ -79,12 +77,12 @@ public class Deobfuscator {
79 setMappings(new Mappings()); 77 setMappings(new Mappings());
80 } 78 }
81 79
82 public ParsedJar getJar() { 80 public Deobfuscator(JarFile jar) throws IOException {
83 return this.parsedJar; 81 this(new ParsedJar(jar));
84 } 82 }
85 83
86 public String getJarName() { 84 public ParsedJar getJar() {
87 return this.jar.getName(); 85 return this.parsedJar;
88 } 86 }
89 87
90 public JarIndex getJarIndex() { 88 public JarIndex getJarIndex() {
@@ -388,7 +386,7 @@ public class Deobfuscator {
388 386
389 classMapping.markDirty(); 387 classMapping.markDirty();
390 renameClassMap.put(classMapping, renameEntries); 388 renameClassMap.put(classMapping, renameEntries);
391 for(ClassMapping innerClass : classMapping.innerClasses()){ 389 for (ClassMapping innerClass : classMapping.innerClasses()) {
392 rebuildMethodNames(innerClass, renameClassMap); 390 rebuildMethodNames(innerClass, renameClassMap);
393 } 391 }
394 } 392 }
diff --git a/src/main/java/cuchaz/enigma/analysis/JarIndex.java b/src/main/java/cuchaz/enigma/analysis/JarIndex.java
index 87e6e886..8172deaa 100644
--- a/src/main/java/cuchaz/enigma/analysis/JarIndex.java
+++ b/src/main/java/cuchaz/enigma/analysis/JarIndex.java
@@ -148,8 +148,7 @@ public class JarIndex {
148 148
149 public void indexInnerClass(ClassEntry innerEntry, ClassEntry outerEntry) { 149 public void indexInnerClass(ClassEntry innerEntry, ClassEntry outerEntry) {
150 this.innerClassesByOuter.put(outerEntry, innerEntry); 150 this.innerClassesByOuter.put(outerEntry, innerEntry);
151 boolean innerWasAdded = this.outerClassesByInner.put(innerEntry, outerEntry) == null; 151 this.outerClassesByInner.putIfAbsent(innerEntry, outerEntry);
152 assert (innerWasAdded);
153 } 152 }
154 153
155 private MethodEntry findBridgedMethod(MethodDefEntry method) { 154 private MethodEntry findBridgedMethod(MethodDefEntry method) {
diff --git a/src/main/java/cuchaz/enigma/analysis/TranslationIndex.java b/src/main/java/cuchaz/enigma/analysis/TranslationIndex.java
index 644a3f2b..b2ddc5fa 100644
--- a/src/main/java/cuchaz/enigma/analysis/TranslationIndex.java
+++ b/src/main/java/cuchaz/enigma/analysis/TranslationIndex.java
@@ -84,7 +84,7 @@ public class TranslationIndex {
84 84
85 // add the superclass 85 // add the superclass
86 ClassEntry superclassEntry = entryPool.getClass(superName); 86 ClassEntry superclassEntry = entryPool.getClass(superName);
87 if (!isJre(superclassEntry)) { 87 if (superclassEntry != null) {
88 this.superclasses.put(classEntry, superclassEntry); 88 this.superclasses.put(classEntry, superclassEntry);
89 } 89 }
90 90
diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java
index 837cff20..ae1b6528 100644
--- a/src/main/java/cuchaz/enigma/gui/GuiController.java
+++ b/src/main/java/cuchaz/enigma/gui/GuiController.java
@@ -58,7 +58,7 @@ public class GuiController {
58 public void openJar(final JarFile jar) throws IOException { 58 public void openJar(final JarFile jar) throws IOException {
59 this.gui.onStartOpenJar(); 59 this.gui.onStartOpenJar();
60 this.deobfuscator = new Deobfuscator(jar); 60 this.deobfuscator = new Deobfuscator(jar);
61 this.gui.onFinishOpenJar(this.deobfuscator.getJarName()); 61 this.gui.onFinishOpenJar(jar.getName());
62 refreshClasses(); 62 refreshClasses();
63 } 63 }
64 64
diff --git a/src/test/java/cuchaz/enigma/TestDeobfed.java b/src/test/java/cuchaz/enigma/TestDeobfed.java
index 744f954d..9babf1e3 100644
--- a/src/test/java/cuchaz/enigma/TestDeobfed.java
+++ b/src/test/java/cuchaz/enigma/TestDeobfed.java
@@ -25,15 +25,15 @@ import static org.hamcrest.Matchers.containsInAnyOrder;
25 25
26public class TestDeobfed { 26public class TestDeobfed {
27 27
28 private static JarFile jar; 28 private static ParsedJar jar;
29 private static JarIndex index; 29 private static JarIndex index;
30 30
31 @BeforeClass 31 @BeforeClass
32 public static void beforeClass() 32 public static void beforeClass()
33 throws Exception { 33 throws Exception {
34 jar = new JarFile("build/test-deobf/translation.jar"); 34 jar = new ParsedJar(new JarFile("build/test-deobf/translation.jar"));
35 index = new JarIndex(new ReferencedEntryPool()); 35 index = new JarIndex(new ReferencedEntryPool());
36 index.indexJar(new ParsedJar(jar), true); 36 index.indexJar(jar, true);
37 } 37 }
38 38
39 @Test 39 @Test
diff --git a/src/test/java/cuchaz/enigma/TestInnerClasses.java b/src/test/java/cuchaz/enigma/TestInnerClasses.java
index f739c11e..843a63c7 100644
--- a/src/test/java/cuchaz/enigma/TestInnerClasses.java
+++ b/src/test/java/cuchaz/enigma/TestInnerClasses.java
@@ -42,8 +42,8 @@ public class TestInnerClasses {
42 public TestInnerClasses() 42 public TestInnerClasses()
43 throws Exception { 43 throws Exception {
44 index = new JarIndex(new ReferencedEntryPool()); 44 index = new JarIndex(new ReferencedEntryPool());
45 JarFile jar = new JarFile("build/test-obf/innerClasses.jar"); 45 ParsedJar jar = new ParsedJar(new JarFile("build/test-obf/innerClasses.jar"));
46 index.indexJar(new ParsedJar(jar), true); 46 index.indexJar(jar, true);
47 deobfuscator = new Deobfuscator(jar); 47 deobfuscator = new Deobfuscator(jar);
48 } 48 }
49 49