diff options
| author | 2018-06-22 22:29:41 +0200 | |
|---|---|---|
| committer | 2018-06-22 22:29:41 +0200 | |
| commit | 7ec433f1ecc5b44f8b690c7443d5e38ac0e6422d (patch) | |
| tree | 346ba1771ce56d46cab67ee4b80c86214856db54 | |
| parent | Fix compile issues (diff) | |
| download | enigma-7ec433f1ecc5b44f8b690c7443d5e38ac0e6422d.tar.gz enigma-7ec433f1ecc5b44f8b690c7443d5e38ac0e6422d.tar.xz enigma-7ec433f1ecc5b44f8b690c7443d5e38ac0e6422d.zip | |
Resolve all failed tests
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; | |||
| 46 | public class Deobfuscator { | 46 | public 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 | ||
| 26 | public class TestDeobfed { | 26 | public 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 | ||