summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/Renamer.java
diff options
context:
space:
mode:
authorGravatar jeff2014-09-01 22:52:07 -0400
committerGravatar jeff2014-09-01 22:52:07 -0400
commit360bbd1c2fca8cbd575907b7d930a8072fccb0c2 (patch)
tree93d0f3c4a0901411427df580c5ddb75cf27440f1 /src/cuchaz/enigma/mapping/Renamer.java
parentadded copyright notice (diff)
downloadenigma-fork-360bbd1c2fca8cbd575907b7d930a8072fccb0c2.tar.gz
enigma-fork-360bbd1c2fca8cbd575907b7d930a8072fccb0c2.tar.xz
enigma-fork-360bbd1c2fca8cbd575907b7d930a8072fccb0c2.zip
refactored jar,translation index. fixed bug with field renaming when fields are shadowed by subclasses
Diffstat (limited to '')
-rw-r--r--src/cuchaz/enigma/mapping/MappingsRenamer.java (renamed from src/cuchaz/enigma/mapping/Renamer.java)22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/cuchaz/enigma/mapping/Renamer.java b/src/cuchaz/enigma/mapping/MappingsRenamer.java
index 15d9af4..9d036d8 100644
--- a/src/cuchaz/enigma/mapping/Renamer.java
+++ b/src/cuchaz/enigma/mapping/MappingsRenamer.java
@@ -18,12 +18,12 @@ import java.util.zip.GZIPOutputStream;
18 18
19import cuchaz.enigma.analysis.JarIndex; 19import cuchaz.enigma.analysis.JarIndex;
20 20
21public class Renamer 21public class MappingsRenamer
22{ 22{
23 private JarIndex m_index; 23 private JarIndex m_index;
24 private Mappings m_mappings; 24 private Mappings m_mappings;
25 25
26 public Renamer( JarIndex index, Mappings mappings ) 26 public MappingsRenamer( JarIndex index, Mappings mappings )
27 { 27 {
28 m_index = index; 28 m_index = index;
29 m_mappings = mappings; 29 m_mappings = mappings;
@@ -77,8 +77,8 @@ public class Renamer
77 MethodEntry targetEntry = new MethodEntry( entry.getClassEntry(), deobfName, entry.getSignature() ); 77 MethodEntry targetEntry = new MethodEntry( entry.getClassEntry(), deobfName, entry.getSignature() );
78 if( m_mappings.containsDeobfMethod( entry.getClassEntry(), deobfName, entry.getSignature() ) || m_index.containsObfMethod( targetEntry ) ) 78 if( m_mappings.containsDeobfMethod( entry.getClassEntry(), deobfName, entry.getSignature() ) || m_index.containsObfMethod( targetEntry ) )
79 { 79 {
80 String className = m_mappings.getTranslator( m_index.getAncestries(), TranslationDirection.Deobfuscating ).translateClass( entry.getClassName() ); 80 String deobfClassName = getTranslator( TranslationDirection.Deobfuscating ).translateClass( entry.getClassName() );
81 throw new IllegalNameException( deobfName, "There is already a method with that name and signature in class " + className ); 81 throw new IllegalNameException( deobfName, "There is already a method with that name and signature in class " + deobfClassName );
82 } 82 }
83 } 83 }
84 84
@@ -94,12 +94,12 @@ public class Renamer
94 MethodEntry targetEntry = new MethodEntry( obf.getClassEntry(), deobfName, obf.getSignature() ); 94 MethodEntry targetEntry = new MethodEntry( obf.getClassEntry(), deobfName, obf.getSignature() );
95 if( m_mappings.containsDeobfMethod( obf.getClassEntry(), deobfName, obf.getSignature() ) || m_index.containsObfMethod( targetEntry ) ) 95 if( m_mappings.containsDeobfMethod( obf.getClassEntry(), deobfName, obf.getSignature() ) || m_index.containsObfMethod( targetEntry ) )
96 { 96 {
97 String className = m_mappings.getTranslator( m_index.getAncestries(), TranslationDirection.Deobfuscating ).translateClass( obf.getClassName() ); 97 String deobfClassName = getTranslator( TranslationDirection.Deobfuscating ).translateClass( obf.getClassName() );
98 throw new IllegalNameException( deobfName, "There is already a method with that name and signature in class " + className ); 98 throw new IllegalNameException( deobfName, "There is already a method with that name and signature in class " + deobfClassName );
99 } 99 }
100 100
101 ClassMapping classMapping = getOrCreateClassMappingOrInnerClassMapping( obf.getClassEntry() ); 101 ClassMapping classMapping = getOrCreateClassMappingOrInnerClassMapping( obf.getClassEntry() );
102 String deobfSignature = m_mappings.getTranslator( m_index.getAncestries(), TranslationDirection.Deobfuscating ).translateSignature( obf.getSignature() ); 102 String deobfSignature = getTranslator( TranslationDirection.Deobfuscating ).translateSignature( obf.getSignature() );
103 classMapping.setMethodNameAndSignature( obf.getName(), obf.getSignature(), deobfName, deobfSignature ); 103 classMapping.setMethodNameAndSignature( obf.getName(), obf.getSignature(), deobfName, deobfSignature );
104 } 104 }
105 105
@@ -151,10 +151,14 @@ public class Renamer
151 151
152 private void updateDeobfMethodSignatures( ) 152 private void updateDeobfMethodSignatures( )
153 { 153 {
154 Translator translator = m_mappings.getTranslator( m_index.getAncestries(), TranslationDirection.Deobfuscating );
155 for( ClassMapping classMapping : m_mappings.m_classesByObf.values() ) 154 for( ClassMapping classMapping : m_mappings.m_classesByObf.values() )
156 { 155 {
157 classMapping.updateDeobfMethodSignatures( translator ); 156 classMapping.updateDeobfMethodSignatures( getTranslator( TranslationDirection.Deobfuscating ) );
158 } 157 }
159 } 158 }
159
160 private Translator getTranslator( TranslationDirection direction )
161 {
162 return m_mappings.getTranslator( m_index.getTranslationIndex(), direction );
163 }
160} 164}