diff options
Diffstat (limited to 'src/cuchaz/enigma/mapping/MappingsRenamer.java')
| -rw-r--r-- | src/cuchaz/enigma/mapping/MappingsRenamer.java | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/src/cuchaz/enigma/mapping/MappingsRenamer.java b/src/cuchaz/enigma/mapping/MappingsRenamer.java index f84b248..49e7b5f 100644 --- a/src/cuchaz/enigma/mapping/MappingsRenamer.java +++ b/src/cuchaz/enigma/mapping/MappingsRenamer.java | |||
| @@ -46,14 +46,15 @@ public class MappingsRenamer | |||
| 46 | } | 46 | } |
| 47 | else | 47 | else |
| 48 | { | 48 | { |
| 49 | boolean wasRemoved = m_mappings.m_classesByDeobf.remove( classMapping.getDeobfName() ) != null; | 49 | if( classMapping.getDeobfName() != null ) |
| 50 | assert( wasRemoved ); | 50 | { |
| 51 | boolean wasRemoved = m_mappings.m_classesByDeobf.remove( classMapping.getDeobfName() ) != null; | ||
| 52 | assert( wasRemoved ); | ||
| 53 | } | ||
| 51 | classMapping.setDeobfName( deobfName ); | 54 | classMapping.setDeobfName( deobfName ); |
| 52 | boolean wasAdded = m_mappings.m_classesByDeobf.put( deobfName, classMapping ) == null; | 55 | boolean wasAdded = m_mappings.m_classesByDeobf.put( deobfName, classMapping ) == null; |
| 53 | assert( wasAdded ); | 56 | assert( wasAdded ); |
| 54 | } | 57 | } |
| 55 | |||
| 56 | updateDeobfMethodSignatures(); | ||
| 57 | } | 58 | } |
| 58 | 59 | ||
| 59 | public void setFieldName( FieldEntry obf, String deobfName ) | 60 | public void setFieldName( FieldEntry obf, String deobfName ) |
| @@ -76,7 +77,8 @@ public class MappingsRenamer | |||
| 76 | deobfName = NameValidator.validateMethodName( deobfName ); | 77 | deobfName = NameValidator.validateMethodName( deobfName ); |
| 77 | for( MethodEntry entry : implementations ) | 78 | for( MethodEntry entry : implementations ) |
| 78 | { | 79 | { |
| 79 | MethodEntry targetEntry = new MethodEntry( entry.getClassEntry(), deobfName, entry.getSignature() ); | 80 | String deobfSignature = getTranslator( TranslationDirection.Deobfuscating ).translateSignature( obf.getSignature() ); |
| 81 | MethodEntry targetEntry = new MethodEntry( entry.getClassEntry(), deobfName, deobfSignature ); | ||
| 80 | if( m_mappings.containsDeobfMethod( entry.getClassEntry(), deobfName, entry.getSignature() ) || m_index.containsObfMethod( targetEntry ) ) | 82 | if( m_mappings.containsDeobfMethod( entry.getClassEntry(), deobfName, entry.getSignature() ) || m_index.containsObfMethod( targetEntry ) ) |
| 81 | { | 83 | { |
| 82 | String deobfClassName = getTranslator( TranslationDirection.Deobfuscating ).translateClass( entry.getClassName() ); | 84 | String deobfClassName = getTranslator( TranslationDirection.Deobfuscating ).translateClass( entry.getClassName() ); |
| @@ -101,8 +103,7 @@ public class MappingsRenamer | |||
| 101 | } | 103 | } |
| 102 | 104 | ||
| 103 | ClassMapping classMapping = getOrCreateClassMappingOrInnerClassMapping( obf.getClassEntry() ); | 105 | ClassMapping classMapping = getOrCreateClassMappingOrInnerClassMapping( obf.getClassEntry() ); |
| 104 | String deobfSignature = getTranslator( TranslationDirection.Deobfuscating ).translateSignature( obf.getSignature() ); | 106 | classMapping.setMethodName( obf.getName(), obf.getSignature(), deobfName ); |
| 105 | classMapping.setMethodNameAndSignature( obf.getName(), obf.getSignature(), deobfName, deobfSignature ); | ||
| 106 | } | 107 | } |
| 107 | 108 | ||
| 108 | public void setArgumentName( ArgumentEntry obf, String deobfName ) | 109 | public void setArgumentName( ArgumentEntry obf, String deobfName ) |
| @@ -137,8 +138,6 @@ public class MappingsRenamer | |||
| 137 | classMapping = new ClassMapping( obfClassName ); | 138 | classMapping = new ClassMapping( obfClassName ); |
| 138 | boolean obfWasAdded = m_mappings.m_classesByObf.put( classMapping.getObfName(), classMapping ) == null; | 139 | boolean obfWasAdded = m_mappings.m_classesByObf.put( classMapping.getObfName(), classMapping ) == null; |
| 139 | assert( obfWasAdded ); | 140 | assert( obfWasAdded ); |
| 140 | boolean deobfWasAdded = m_mappings.m_classesByDeobf.put( classMapping.getDeobfName(), classMapping ) == null; | ||
| 141 | assert( deobfWasAdded ); | ||
| 142 | } | 141 | } |
| 143 | return classMapping; | 142 | return classMapping; |
| 144 | } | 143 | } |
| @@ -153,14 +152,6 @@ public class MappingsRenamer | |||
| 153 | return classMapping; | 152 | return classMapping; |
| 154 | } | 153 | } |
| 155 | 154 | ||
| 156 | private void updateDeobfMethodSignatures( ) | ||
| 157 | { | ||
| 158 | for( ClassMapping classMapping : m_mappings.m_classesByObf.values() ) | ||
| 159 | { | ||
| 160 | classMapping.updateDeobfMethodSignatures( getTranslator( TranslationDirection.Deobfuscating ) ); | ||
| 161 | } | ||
| 162 | } | ||
| 163 | |||
| 164 | private Translator getTranslator( TranslationDirection direction ) | 155 | private Translator getTranslator( TranslationDirection direction ) |
| 165 | { | 156 | { |
| 166 | return m_mappings.getTranslator( m_index.getTranslationIndex(), direction ); | 157 | return m_mappings.getTranslator( m_index.getTranslationIndex(), direction ); |