summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/Mappings.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/Mappings.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 'src/cuchaz/enigma/mapping/Mappings.java')
-rw-r--r--src/cuchaz/enigma/mapping/Mappings.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/cuchaz/enigma/mapping/Mappings.java b/src/cuchaz/enigma/mapping/Mappings.java
index 378d4c0..f52094f 100644
--- a/src/cuchaz/enigma/mapping/Mappings.java
+++ b/src/cuchaz/enigma/mapping/Mappings.java
@@ -24,8 +24,7 @@ import com.beust.jcommander.internal.Sets;
24import com.google.common.collect.Maps; 24import com.google.common.collect.Maps;
25 25
26import cuchaz.enigma.Util; 26import cuchaz.enigma.Util;
27import cuchaz.enigma.analysis.Ancestries; 27import cuchaz.enigma.analysis.TranslationIndex;
28import cuchaz.enigma.analysis.DeobfuscatedAncestries;
29import cuchaz.enigma.mapping.SignatureUpdater.ClassNameUpdater; 28import cuchaz.enigma.mapping.SignatureUpdater.ClassNameUpdater;
30 29
31public class Mappings implements Serializable 30public class Mappings implements Serializable
@@ -108,12 +107,27 @@ public class Mappings implements Serializable
108 return m_classesByDeobf.get( deobfName ); 107 return m_classesByDeobf.get( deobfName );
109 } 108 }
110 109
111 public Translator getTranslator( Ancestries ancestries, TranslationDirection direction ) 110 public Translator getTranslator( TranslationIndex index, TranslationDirection direction )
112 { 111 {
112 if( direction == TranslationDirection.Obfuscating )
113 {
114 // deobfuscate the index
115 index = new TranslationIndex( index );
116 Map<String,String> renames = Maps.newHashMap();
117 for( ClassMapping classMapping : classes() )
118 {
119 renames.put( classMapping.getObfName(), classMapping.getDeobfName() );
120 for( ClassMapping innerClassMapping : classMapping.innerClasses() )
121 {
122 renames.put( innerClassMapping.getObfName(), innerClassMapping.getDeobfName() );
123 }
124 }
125 index.renameClasses( renames );
126 }
113 return new Translator( 127 return new Translator(
114 direction, 128 direction,
115 direction.choose( m_classesByObf, m_classesByDeobf ), 129 direction.choose( m_classesByObf, m_classesByDeobf ),
116 direction.choose( ancestries, new DeobfuscatedAncestries( ancestries, m_classesByObf, m_classesByDeobf ) ) 130 index
117 ); 131 );
118 } 132 }
119 133