diff options
| author | 2020-08-19 05:36:38 -0400 | |
|---|---|---|
| committer | 2020-08-19 05:36:38 -0400 | |
| commit | de67555ddbdbbc0c636170c2ea1018c126253e37 (patch) | |
| tree | 5de6a6149d0ba8cfbfeb9ca3a1e2c28dd5aa6bfa | |
| parent | Add gradle run tasks (#306) (diff) | |
| download | enigma-de67555ddbdbbc0c636170c2ea1018c126253e37.tar.gz enigma-de67555ddbdbbc0c636170c2ea1018c126253e37.tar.xz enigma-de67555ddbdbbc0c636170c2ea1018c126253e37.zip | |
Fix #303 (#308)
| -rw-r--r-- | enigma/src/main/java/cuchaz/enigma/EnigmaProject.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java index 2abd39c1..f6420d2b 100644 --- a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java +++ b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java | |||
| @@ -18,13 +18,13 @@ import java.util.stream.Stream; | |||
| 18 | 18 | ||
| 19 | import com.google.common.base.Functions; | 19 | import com.google.common.base.Functions; |
| 20 | import com.google.common.base.Preconditions; | 20 | import com.google.common.base.Preconditions; |
| 21 | import cuchaz.enigma.classprovider.ObfuscationFixClassProvider; | ||
| 21 | import org.objectweb.asm.ClassWriter; | 22 | import org.objectweb.asm.ClassWriter; |
| 22 | import org.objectweb.asm.tree.ClassNode; | 23 | import org.objectweb.asm.tree.ClassNode; |
| 23 | 24 | ||
| 24 | import cuchaz.enigma.analysis.EntryReference; | 25 | import cuchaz.enigma.analysis.EntryReference; |
| 25 | import cuchaz.enigma.analysis.index.JarIndex; | 26 | import cuchaz.enigma.analysis.index.JarIndex; |
| 26 | import cuchaz.enigma.api.service.NameProposalService; | 27 | import cuchaz.enigma.api.service.NameProposalService; |
| 27 | import cuchaz.enigma.bytecode.translators.SourceFixVisitor; | ||
| 28 | import cuchaz.enigma.bytecode.translators.TranslationClassVisitor; | 28 | import cuchaz.enigma.bytecode.translators.TranslationClassVisitor; |
| 29 | import cuchaz.enigma.classprovider.ClassProvider; | 29 | import cuchaz.enigma.classprovider.ClassProvider; |
| 30 | import cuchaz.enigma.source.Decompiler; | 30 | import cuchaz.enigma.source.Decompiler; |
| @@ -160,6 +160,7 @@ public class EnigmaProject { | |||
| 160 | 160 | ||
| 161 | public JarExport exportRemappedJar(ProgressListener progress) { | 161 | public JarExport exportRemappedJar(ProgressListener progress) { |
| 162 | Collection<ClassEntry> classEntries = jarIndex.getEntryIndex().getClasses(); | 162 | Collection<ClassEntry> classEntries = jarIndex.getEntryIndex().getClasses(); |
| 163 | ClassProvider fixingClassProvider = new ObfuscationFixClassProvider(classProvider, jarIndex); | ||
| 163 | 164 | ||
| 164 | NameProposalService[] nameProposalServices = getEnigma().getServices().get(NameProposalService.TYPE).toArray(new NameProposalService[0]); | 165 | NameProposalService[] nameProposalServices = getEnigma().getServices().get(NameProposalService.TYPE).toArray(new NameProposalService[0]); |
| 165 | Translator deobfuscator = nameProposalServices.length == 0 ? mapper.getDeobfuscator() : new ProposingTranslator(mapper, nameProposalServices); | 166 | Translator deobfuscator = nameProposalServices.length == 0 ? mapper.getDeobfuscator() : new ProposingTranslator(mapper, nameProposalServices); |
| @@ -172,10 +173,10 @@ public class EnigmaProject { | |||
| 172 | ClassEntry translatedEntry = deobfuscator.translate(entry); | 173 | ClassEntry translatedEntry = deobfuscator.translate(entry); |
| 173 | progress.step(count.getAndIncrement(), translatedEntry.toString()); | 174 | progress.step(count.getAndIncrement(), translatedEntry.toString()); |
| 174 | 175 | ||
| 175 | ClassNode node = classProvider.get(entry.getFullName()); | 176 | ClassNode node = fixingClassProvider.get(entry.getFullName()); |
| 176 | if (node != null) { | 177 | if (node != null) { |
| 177 | ClassNode translatedNode = new ClassNode(); | 178 | ClassNode translatedNode = new ClassNode(); |
| 178 | node.accept(new TranslationClassVisitor(deobfuscator, Enigma.ASM_VERSION, new SourceFixVisitor(Enigma.ASM_VERSION, translatedNode, jarIndex))); | 179 | node.accept(new TranslationClassVisitor(deobfuscator, Enigma.ASM_VERSION, translatedNode)); |
| 179 | return translatedNode; | 180 | return translatedNode; |
| 180 | } | 181 | } |
| 181 | 182 | ||