diff options
| author | 2020-07-06 06:34:10 -0400 | |
|---|---|---|
| committer | 2020-07-06 12:34:10 +0200 | |
| commit | f0885819aeeb2edbfcfc0b23566cccb571166a02 (patch) | |
| tree | d650aa68641fdfd9cc5f5ed0093229d1840506d8 /enigma-cli/src/main | |
| parent | Fix "Mark as Deobfuscated" menu entry not working... this time without breaki... (diff) | |
| download | enigma-fork-f0885819aeeb2edbfcfc0b23566cccb571166a02.tar.gz enigma-fork-f0885819aeeb2edbfcfc0b23566cccb571166a02.tar.xz enigma-fork-f0885819aeeb2edbfcfc0b23566cccb571166a02.zip | |
Make class loading more flexible (#277)
Diffstat (limited to 'enigma-cli/src/main')
3 files changed, 14 insertions, 8 deletions
diff --git a/enigma-cli/src/main/java/cuchaz/enigma/command/CheckMappingsCommand.java b/enigma-cli/src/main/java/cuchaz/enigma/command/CheckMappingsCommand.java index e4deef8..75ef225 100644 --- a/enigma-cli/src/main/java/cuchaz/enigma/command/CheckMappingsCommand.java +++ b/enigma-cli/src/main/java/cuchaz/enigma/command/CheckMappingsCommand.java | |||
| @@ -4,6 +4,7 @@ import cuchaz.enigma.Enigma; | |||
| 4 | import cuchaz.enigma.EnigmaProject; | 4 | import cuchaz.enigma.EnigmaProject; |
| 5 | import cuchaz.enigma.ProgressListener; | 5 | import cuchaz.enigma.ProgressListener; |
| 6 | import cuchaz.enigma.analysis.index.JarIndex; | 6 | import cuchaz.enigma.analysis.index.JarIndex; |
| 7 | import cuchaz.enigma.classprovider.ClasspathClassProvider; | ||
| 7 | import cuchaz.enigma.translation.mapping.EntryMapping; | 8 | import cuchaz.enigma.translation.mapping.EntryMapping; |
| 8 | import cuchaz.enigma.translation.mapping.serde.MappingSaveParameters; | 9 | import cuchaz.enigma.translation.mapping.serde.MappingSaveParameters; |
| 9 | import cuchaz.enigma.translation.mapping.serde.MappingFormat; | 10 | import cuchaz.enigma.translation.mapping.serde.MappingFormat; |
| @@ -39,7 +40,7 @@ public class CheckMappingsCommand extends Command { | |||
| 39 | 40 | ||
| 40 | System.out.println("Reading JAR..."); | 41 | System.out.println("Reading JAR..."); |
| 41 | 42 | ||
| 42 | EnigmaProject project = enigma.openJar(fileJarIn, ProgressListener.none()); | 43 | EnigmaProject project = enigma.openJar(fileJarIn, new ClasspathClassProvider(), ProgressListener.none()); |
| 43 | 44 | ||
| 44 | System.out.println("Reading mappings..."); | 45 | System.out.println("Reading mappings..."); |
| 45 | 46 | ||
diff --git a/enigma-cli/src/main/java/cuchaz/enigma/command/Command.java b/enigma-cli/src/main/java/cuchaz/enigma/command/Command.java index 0640e3e..0d71f02 100644 --- a/enigma-cli/src/main/java/cuchaz/enigma/command/Command.java +++ b/enigma-cli/src/main/java/cuchaz/enigma/command/Command.java | |||
| @@ -3,6 +3,7 @@ package cuchaz.enigma.command; | |||
| 3 | import cuchaz.enigma.Enigma; | 3 | import cuchaz.enigma.Enigma; |
| 4 | import cuchaz.enigma.EnigmaProject; | 4 | import cuchaz.enigma.EnigmaProject; |
| 5 | import cuchaz.enigma.ProgressListener; | 5 | import cuchaz.enigma.ProgressListener; |
| 6 | import cuchaz.enigma.classprovider.ClasspathClassProvider; | ||
| 6 | import cuchaz.enigma.translation.mapping.EntryMapping; | 7 | import cuchaz.enigma.translation.mapping.EntryMapping; |
| 7 | import cuchaz.enigma.translation.mapping.serde.MappingSaveParameters; | 8 | import cuchaz.enigma.translation.mapping.serde.MappingSaveParameters; |
| 8 | import cuchaz.enigma.translation.mapping.serde.MappingFormat; | 9 | import cuchaz.enigma.translation.mapping.serde.MappingFormat; |
| @@ -34,7 +35,7 @@ public abstract class Command { | |||
| 34 | Enigma enigma = Enigma.create(); | 35 | Enigma enigma = Enigma.create(); |
| 35 | 36 | ||
| 36 | System.out.println("Reading jar..."); | 37 | System.out.println("Reading jar..."); |
| 37 | EnigmaProject project = enigma.openJar(fileJarIn, progress); | 38 | EnigmaProject project = enigma.openJar(fileJarIn, new ClasspathClassProvider(), progress); |
| 38 | 39 | ||
| 39 | if (fileMappings != null) { | 40 | if (fileMappings != null) { |
| 40 | System.out.println("Reading mappings..."); | 41 | System.out.println("Reading mappings..."); |
diff --git a/enigma-cli/src/main/java/cuchaz/enigma/command/MapSpecializedMethodsCommand.java b/enigma-cli/src/main/java/cuchaz/enigma/command/MapSpecializedMethodsCommand.java index 292de19..94f7010 100644 --- a/enigma-cli/src/main/java/cuchaz/enigma/command/MapSpecializedMethodsCommand.java +++ b/enigma-cli/src/main/java/cuchaz/enigma/command/MapSpecializedMethodsCommand.java | |||
| @@ -1,14 +1,15 @@ | |||
| 1 | package cuchaz.enigma.command; | 1 | package cuchaz.enigma.command; |
| 2 | 2 | ||
| 3 | import cuchaz.enigma.ProgressListener; | 3 | import cuchaz.enigma.ProgressListener; |
| 4 | import cuchaz.enigma.analysis.ClassCache; | ||
| 5 | import cuchaz.enigma.analysis.index.BridgeMethodIndex; | 4 | import cuchaz.enigma.analysis.index.BridgeMethodIndex; |
| 6 | import cuchaz.enigma.analysis.index.JarIndex; | 5 | import cuchaz.enigma.analysis.index.JarIndex; |
| 7 | import cuchaz.enigma.translation.mapping.serde.MappingFileNameFormat; | 6 | import cuchaz.enigma.classprovider.CachingClassProvider; |
| 8 | import cuchaz.enigma.translation.mapping.serde.MappingParseException; | 7 | import cuchaz.enigma.classprovider.JarClassProvider; |
| 9 | import cuchaz.enigma.translation.MappingTranslator; | 8 | import cuchaz.enigma.translation.MappingTranslator; |
| 10 | import cuchaz.enigma.translation.Translator; | 9 | import cuchaz.enigma.translation.Translator; |
| 11 | import cuchaz.enigma.translation.mapping.*; | 10 | import cuchaz.enigma.translation.mapping.EntryMapping; |
| 11 | import cuchaz.enigma.translation.mapping.serde.MappingFileNameFormat; | ||
| 12 | import cuchaz.enigma.translation.mapping.serde.MappingParseException; | ||
| 12 | import cuchaz.enigma.translation.mapping.serde.MappingSaveParameters; | 13 | import cuchaz.enigma.translation.mapping.serde.MappingSaveParameters; |
| 13 | import cuchaz.enigma.translation.mapping.tree.EntryTree; | 14 | import cuchaz.enigma.translation.mapping.tree.EntryTree; |
| 14 | import cuchaz.enigma.translation.mapping.tree.EntryTreeNode; | 15 | import cuchaz.enigma.translation.mapping.tree.EntryTreeNode; |
| @@ -45,8 +46,11 @@ public class MapSpecializedMethodsCommand extends Command { | |||
| 45 | MappingSaveParameters saveParameters = new MappingSaveParameters(MappingFileNameFormat.BY_DEOBF); | 46 | MappingSaveParameters saveParameters = new MappingSaveParameters(MappingFileNameFormat.BY_DEOBF); |
| 46 | EntryTree<EntryMapping> source = MappingCommandsUtil.read(sourceFormat, sourcePath, saveParameters); | 47 | EntryTree<EntryMapping> source = MappingCommandsUtil.read(sourceFormat, sourcePath, saveParameters); |
| 47 | EntryTree<EntryMapping> result = new HashEntryTree<>(); | 48 | EntryTree<EntryMapping> result = new HashEntryTree<>(); |
| 48 | ClassCache classCache = ClassCache.of(jar); | 49 | |
| 49 | JarIndex jarIndex = classCache.index(ProgressListener.none()); | 50 | JarClassProvider jcp = new JarClassProvider(jar); |
| 51 | JarIndex jarIndex = JarIndex.empty(); | ||
| 52 | jarIndex.indexJar(jcp.getClassNames(), new CachingClassProvider(jcp), ProgressListener.none()); | ||
| 53 | |||
| 50 | BridgeMethodIndex bridgeMethodIndex = jarIndex.getBridgeMethodIndex(); | 54 | BridgeMethodIndex bridgeMethodIndex = jarIndex.getBridgeMethodIndex(); |
| 51 | Translator translator = new MappingTranslator(source, jarIndex.getEntryResolver()); | 55 | Translator translator = new MappingTranslator(source, jarIndex.getEntryResolver()); |
| 52 | 56 | ||