summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Runemoro2020-08-19 05:36:38 -0400
committerGravatar GitHub2020-08-19 05:36:38 -0400
commitde67555ddbdbbc0c636170c2ea1018c126253e37 (patch)
tree5de6a6149d0ba8cfbfeb9ca3a1e2c28dd5aa6bfa
parentAdd gradle run tasks (#306) (diff)
downloadenigma-de67555ddbdbbc0c636170c2ea1018c126253e37.tar.gz
enigma-de67555ddbdbbc0c636170c2ea1018c126253e37.tar.xz
enigma-de67555ddbdbbc0c636170c2ea1018c126253e37.zip
Fix #303 (#308)
-rw-r--r--enigma/src/main/java/cuchaz/enigma/EnigmaProject.java7
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
19import com.google.common.base.Functions; 19import com.google.common.base.Functions;
20import com.google.common.base.Preconditions; 20import com.google.common.base.Preconditions;
21import cuchaz.enigma.classprovider.ObfuscationFixClassProvider;
21import org.objectweb.asm.ClassWriter; 22import org.objectweb.asm.ClassWriter;
22import org.objectweb.asm.tree.ClassNode; 23import org.objectweb.asm.tree.ClassNode;
23 24
24import cuchaz.enigma.analysis.EntryReference; 25import cuchaz.enigma.analysis.EntryReference;
25import cuchaz.enigma.analysis.index.JarIndex; 26import cuchaz.enigma.analysis.index.JarIndex;
26import cuchaz.enigma.api.service.NameProposalService; 27import cuchaz.enigma.api.service.NameProposalService;
27import cuchaz.enigma.bytecode.translators.SourceFixVisitor;
28import cuchaz.enigma.bytecode.translators.TranslationClassVisitor; 28import cuchaz.enigma.bytecode.translators.TranslationClassVisitor;
29import cuchaz.enigma.classprovider.ClassProvider; 29import cuchaz.enigma.classprovider.ClassProvider;
30import cuchaz.enigma.source.Decompiler; 30import 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