summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/Deobfuscator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/Deobfuscator.java')
-rw-r--r--src/main/java/cuchaz/enigma/Deobfuscator.java43
1 files changed, 6 insertions, 37 deletions
diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java
index 2a18e65..f917deb 100644
--- a/src/main/java/cuchaz/enigma/Deobfuscator.java
+++ b/src/main/java/cuchaz/enigma/Deobfuscator.java
@@ -120,11 +120,6 @@ public class Deobfuscator {
120 } 120 }
121 } 121 }
122 122
123 // check for related method inconsistencies
124 if (checker.getRelatedMethodChecker().hasProblems()) {
125 throw new Error("Related methods are inconsistent! Need to fix the mappings manually.\n" + checker.getRelatedMethodChecker().getReport());
126 }
127
128 m_mappings = val; 123 m_mappings = val;
129 m_renamer = new MappingsRenamer(m_jarIndex, val); 124 m_renamer = new MappingsRenamer(m_jarIndex, val);
130 m_translatorCache.clear(); 125 m_translatorCache.clear();
@@ -151,7 +146,7 @@ public class Deobfuscator {
151 if (!deobfClassEntry.equals(obfClassEntry)) { 146 if (!deobfClassEntry.equals(obfClassEntry)) {
152 // if the class has a mapping, clearly it's deobfuscated 147 // if the class has a mapping, clearly it's deobfuscated
153 deobfClasses.add(deobfClassEntry); 148 deobfClasses.add(deobfClassEntry);
154 } else if (!obfClassEntry.getPackageName().equals(Constants.NonePackage)) { 149 } else if (!obfClassEntry.getPackageName().equals(Constants.NONE_PACKAGE)) {
155 // also call it deobufscated if it's not in the none package 150 // also call it deobufscated if it's not in the none package
156 deobfClasses.add(obfClassEntry); 151 deobfClasses.add(obfClassEntry);
157 } else { 152 } else {
@@ -308,33 +303,15 @@ public class Deobfuscator {
308 getTranslator(TranslationDirection.Obfuscating), 303 getTranslator(TranslationDirection.Obfuscating),
309 getTranslator(TranslationDirection.Deobfuscating) 304 getTranslator(TranslationDirection.Deobfuscating)
310 ); 305 );
311 transformJar(out, progress, new ClassTransformer() { 306 transformJar(out, progress, loader::transformClass);
312
313 @Override
314 public CtClass transform(CtClass c) throws Exception {
315 return loader.transformClass(c);
316 }
317 });
318 } 307 }
319 308
320 public void protectifyJar(File out, ProgressListener progress) { 309 public void protectifyJar(File out, ProgressListener progress) {
321 transformJar(out, progress, new ClassTransformer() { 310 transformJar(out, progress, ClassProtectifier::protectify);
322
323 @Override
324 public CtClass transform(CtClass c) throws Exception {
325 return ClassProtectifier.protectify(c);
326 }
327 });
328 } 311 }
329 312
330 public void publifyJar(File out, ProgressListener progress) { 313 public void publifyJar(File out, ProgressListener progress) {
331 transformJar(out, progress, new ClassTransformer() { 314 transformJar(out, progress, ClassPublifier::publify);
332
333 @Override
334 public CtClass transform(CtClass c) throws Exception {
335 return ClassPublifier.publify(c);
336 }
337 });
338 } 315 }
339 316
340 private interface ClassTransformer { 317 private interface ClassTransformer {
@@ -390,22 +367,14 @@ public class Deobfuscator {
390 if (deobfReference == null) { 367 if (deobfReference == null) {
391 return null; 368 return null;
392 } 369 }
393 return new EntryReference<E, C>( 370 return new EntryReference<>(obfuscateEntry(deobfReference.entry), obfuscateEntry(deobfReference.context), deobfReference);
394 obfuscateEntry(deobfReference.entry),
395 obfuscateEntry(deobfReference.context),
396 deobfReference
397 );
398 } 371 }
399 372
400 public <E extends Entry, C extends Entry> EntryReference<E, C> deobfuscateReference(EntryReference<E, C> obfReference) { 373 public <E extends Entry, C extends Entry> EntryReference<E, C> deobfuscateReference(EntryReference<E, C> obfReference) {
401 if (obfReference == null) { 374 if (obfReference == null) {
402 return null; 375 return null;
403 } 376 }
404 return new EntryReference<E, C>( 377 return new EntryReference<>(deobfuscateEntry(obfReference.entry), deobfuscateEntry(obfReference.context), obfReference);
405 deobfuscateEntry(obfReference.entry),
406 deobfuscateEntry(obfReference.context),
407 obfReference
408 );
409 } 378 }
410 379
411 public boolean isObfuscatedIdentifier(Entry obfEntry) { 380 public boolean isObfuscatedIdentifier(Entry obfEntry) {