diff options
Diffstat (limited to 'enigma/src/main/java')
| -rw-r--r-- | enigma/src/main/java/cuchaz/enigma/source/DecompiledClassSource.java | 13 | ||||
| -rw-r--r-- | enigma/src/main/java/cuchaz/enigma/source/RenamableTokenType.java | 3 |
2 files changed, 14 insertions, 2 deletions
diff --git a/enigma/src/main/java/cuchaz/enigma/source/DecompiledClassSource.java b/enigma/src/main/java/cuchaz/enigma/source/DecompiledClassSource.java index 4f78e9c..69692db 100644 --- a/enigma/src/main/java/cuchaz/enigma/source/DecompiledClassSource.java +++ b/enigma/src/main/java/cuchaz/enigma/source/DecompiledClassSource.java | |||
| @@ -12,6 +12,7 @@ import cuchaz.enigma.EnigmaProject; | |||
| 12 | import cuchaz.enigma.EnigmaServices; | 12 | import cuchaz.enigma.EnigmaServices; |
| 13 | import cuchaz.enigma.analysis.EntryReference; | 13 | import cuchaz.enigma.analysis.EntryReference; |
| 14 | import cuchaz.enigma.api.service.NameProposalService; | 14 | import cuchaz.enigma.api.service.NameProposalService; |
| 15 | import cuchaz.enigma.api.service.ObfuscationTestService; | ||
| 15 | import cuchaz.enigma.translation.LocalNameGenerator; | 16 | import cuchaz.enigma.translation.LocalNameGenerator; |
| 16 | import cuchaz.enigma.translation.TranslateResult; | 17 | import cuchaz.enigma.translation.TranslateResult; |
| 17 | import cuchaz.enigma.translation.Translator; | 18 | import cuchaz.enigma.translation.Translator; |
| @@ -72,7 +73,11 @@ public class DecompiledClassSource { | |||
| 72 | return proposedName.get(); | 73 | return proposedName.get(); |
| 73 | } | 74 | } |
| 74 | 75 | ||
| 75 | target.add(RenamableTokenType.OBFUSCATED, movedToken); | 76 | if (isUnobfuscated(project, entry)) { |
| 77 | target.add(RenamableTokenType.UNOBFUSCATED, movedToken); | ||
| 78 | } else { | ||
| 79 | target.add(RenamableTokenType.OBFUSCATED, movedToken); | ||
| 80 | } | ||
| 76 | } | 81 | } |
| 77 | } | 82 | } |
| 78 | 83 | ||
| @@ -96,6 +101,12 @@ public class DecompiledClassSource { | |||
| 96 | }).findFirst(); | 101 | }).findFirst(); |
| 97 | } | 102 | } |
| 98 | 103 | ||
| 104 | private static boolean isUnobfuscated(EnigmaProject project, Entry<?> entry) { | ||
| 105 | EnigmaServices services = project.getEnigma().getServices(); | ||
| 106 | |||
| 107 | return services.get(ObfuscationTestService.TYPE).stream().anyMatch(service -> service.testDeobfuscated(entry)); | ||
| 108 | } | ||
| 109 | |||
| 99 | @Nullable | 110 | @Nullable |
| 100 | private String generateDefaultName(Entry<?> entry) { | 111 | private String generateDefaultName(Entry<?> entry) { |
| 101 | if (entry instanceof LocalVariableDefEntry) { | 112 | if (entry instanceof LocalVariableDefEntry) { |
diff --git a/enigma/src/main/java/cuchaz/enigma/source/RenamableTokenType.java b/enigma/src/main/java/cuchaz/enigma/source/RenamableTokenType.java index c63aad9..aad3ada 100644 --- a/enigma/src/main/java/cuchaz/enigma/source/RenamableTokenType.java +++ b/enigma/src/main/java/cuchaz/enigma/source/RenamableTokenType.java | |||
| @@ -3,5 +3,6 @@ package cuchaz.enigma.source; | |||
| 3 | public enum RenamableTokenType { | 3 | public enum RenamableTokenType { |
| 4 | OBFUSCATED, | 4 | OBFUSCATED, |
| 5 | DEOBFUSCATED, | 5 | DEOBFUSCATED, |
| 6 | PROPOSED | 6 | PROPOSED, |
| 7 | UNOBFUSCATED, | ||
| 7 | } | 8 | } |