summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/Deobfuscator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/Deobfuscator.java')
-rw-r--r--src/cuchaz/enigma/Deobfuscator.java68
1 files changed, 60 insertions, 8 deletions
diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java
index 9a33917..44845ba 100644
--- a/src/cuchaz/enigma/Deobfuscator.java
+++ b/src/cuchaz/enigma/Deobfuscator.java
@@ -508,23 +508,19 @@ public class Deobfuscator
508 Translator translator = getTranslator( TranslationDirection.Deobfuscating ); 508 Translator translator = getTranslator( TranslationDirection.Deobfuscating );
509 if( obfEntry instanceof ClassEntry ) 509 if( obfEntry instanceof ClassEntry )
510 { 510 {
511 String deobfName = translator.translate( (ClassEntry)obfEntry ); 511 return translator.translate( (ClassEntry)obfEntry ) != null;
512 return deobfName != null && !deobfName.equals( obfEntry.getName() );
513 } 512 }
514 else if( obfEntry instanceof FieldEntry ) 513 else if( obfEntry instanceof FieldEntry )
515 { 514 {
516 String deobfName = translator.translate( (FieldEntry)obfEntry ); 515 return translator.translate( (FieldEntry)obfEntry ) != null;
517 return deobfName != null && !deobfName.equals( obfEntry.getName() );
518 } 516 }
519 else if( obfEntry instanceof MethodEntry ) 517 else if( obfEntry instanceof MethodEntry )
520 { 518 {
521 String deobfName = translator.translate( (MethodEntry)obfEntry ); 519 return translator.translate( (MethodEntry)obfEntry ) != null;
522 return deobfName != null && !deobfName.equals( obfEntry.getName() );
523 } 520 }
524 else if( obfEntry instanceof ConstructorEntry ) 521 else if( obfEntry instanceof ConstructorEntry )
525 { 522 {
526 String deobfName = translator.translate( obfEntry.getClassEntry() ); 523 return translator.translate( obfEntry.getClassEntry() ) != null;
527 return deobfName != null && !deobfName.equals( obfEntry.getClassName() );
528 } 524 }
529 else if( obfEntry instanceof ArgumentEntry ) 525 else if( obfEntry instanceof ArgumentEntry )
530 { 526 {
@@ -540,4 +536,60 @@ public class Deobfuscator
540 { 536 {
541 return m_jarIndex.containsObfEntry( obfEntry ); 537 return m_jarIndex.containsObfEntry( obfEntry );
542 } 538 }
539
540 public void removeMapping( Entry obfEntry )
541 {
542 if( obfEntry instanceof ClassEntry )
543 {
544 m_renamer.removeClassMapping( (ClassEntry)obfEntry );
545 }
546 else if( obfEntry instanceof FieldEntry )
547 {
548 m_renamer.removeFieldMapping( (FieldEntry)obfEntry );
549 }
550 else if( obfEntry instanceof MethodEntry )
551 {
552 m_renamer.removeMethodTreeMapping( (MethodEntry)obfEntry );
553 }
554 else if( obfEntry instanceof ConstructorEntry )
555 {
556 m_renamer.removeClassMapping( obfEntry.getClassEntry() );
557 }
558 else if( obfEntry instanceof ArgumentEntry )
559 {
560 m_renamer.removeArgumentMapping( (ArgumentEntry)obfEntry );
561 }
562 else
563 {
564 throw new Error( "Unknown entry type: " + obfEntry );
565 }
566 }
567
568 public void markAsDeobfuscated( Entry obfEntry )
569 {
570 if( obfEntry instanceof ClassEntry )
571 {
572 m_renamer.markClassAsDeobfuscated( (ClassEntry)obfEntry );
573 }
574 else if( obfEntry instanceof FieldEntry )
575 {
576 m_renamer.markFieldAsDeobfuscated( (FieldEntry)obfEntry );
577 }
578 else if( obfEntry instanceof MethodEntry )
579 {
580 m_renamer.markMethodTreeAsDeobfuscated( (MethodEntry)obfEntry );
581 }
582 else if( obfEntry instanceof ConstructorEntry )
583 {
584 m_renamer.markClassAsDeobfuscated( obfEntry.getClassEntry() );
585 }
586 else if( obfEntry instanceof ArgumentEntry )
587 {
588 m_renamer.markArgumentAsDeobfuscated( (ArgumentEntry)obfEntry );
589 }
590 else
591 {
592 throw new Error( "Unknown entry type: " + obfEntry );
593 }
594 }
543} 595}