diff options
| author | 2014-09-26 00:33:07 -0400 | |
|---|---|---|
| committer | 2014-09-26 00:33:07 -0400 | |
| commit | 575447097876b5cf3dfbae8fa1f6f749819e97b8 (patch) | |
| tree | 50b544e601e295dee5a55e747db85df9d3a25577 /src/cuchaz/enigma/mapping/ClassMapping.java | |
| parent | fixed invalid tokens issue (diff) | |
| download | enigma-fork-575447097876b5cf3dfbae8fa1f6f749819e97b8.tar.gz enigma-fork-575447097876b5cf3dfbae8fa1f6f749819e97b8.tar.xz enigma-fork-575447097876b5cf3dfbae8fa1f6f749819e97b8.zip | |
implemented mark-as-deobfuscated and reset-to-obfuscated
Diffstat (limited to 'src/cuchaz/enigma/mapping/ClassMapping.java')
| -rw-r--r-- | src/cuchaz/enigma/mapping/ClassMapping.java | 62 |
1 files changed, 50 insertions, 12 deletions
diff --git a/src/cuchaz/enigma/mapping/ClassMapping.java b/src/cuchaz/enigma/mapping/ClassMapping.java index b551d71..88106df 100644 --- a/src/cuchaz/enigma/mapping/ClassMapping.java +++ b/src/cuchaz/enigma/mapping/ClassMapping.java | |||
| @@ -79,6 +79,17 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping> | |||
| 79 | } | 79 | } |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | public void removeInnerClassMapping( ClassMapping classMapping ) | ||
| 83 | { | ||
| 84 | boolean obfWasRemoved = m_innerClassesByObf.remove( classMapping.getObfName() ) != null; | ||
| 85 | assert( obfWasRemoved ); | ||
| 86 | if( classMapping.getDeobfName() != null ) | ||
| 87 | { | ||
| 88 | boolean deobfWasRemoved = m_innerClassesByDeobf.remove( classMapping.getDeobfName() ) != null; | ||
| 89 | assert( deobfWasRemoved ); | ||
| 90 | } | ||
| 91 | } | ||
| 92 | |||
| 82 | public ClassMapping getOrCreateInnerClass( String obfName ) | 93 | public ClassMapping getOrCreateInnerClass( String obfName ) |
| 83 | { | 94 | { |
| 84 | ClassMapping classMapping = m_innerClassesByObf.get( obfName ); | 95 | ClassMapping classMapping = m_innerClassesByObf.get( obfName ); |
| @@ -124,11 +135,17 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping> | |||
| 124 | public void setInnerClassName( String obfName, String deobfName ) | 135 | public void setInnerClassName( String obfName, String deobfName ) |
| 125 | { | 136 | { |
| 126 | ClassMapping classMapping = getOrCreateInnerClass( obfName ); | 137 | ClassMapping classMapping = getOrCreateInnerClass( obfName ); |
| 127 | boolean wasRemoved = m_innerClassesByDeobf.remove( classMapping.getDeobfName() ) != null; | 138 | if( classMapping.getDeobfName() != null ) |
| 128 | assert( wasRemoved ); | 139 | { |
| 140 | boolean wasRemoved = m_innerClassesByDeobf.remove( classMapping.getDeobfName() ) != null; | ||
| 141 | assert( wasRemoved ); | ||
| 142 | } | ||
| 129 | classMapping.setDeobfName( deobfName ); | 143 | classMapping.setDeobfName( deobfName ); |
| 130 | boolean wasAdded = m_innerClassesByDeobf.put( deobfName, classMapping ) == null; | 144 | if( deobfName != null ) |
| 131 | assert( wasAdded ); | 145 | { |
| 146 | boolean wasAdded = m_innerClassesByDeobf.put( deobfName, classMapping ) == null; | ||
| 147 | assert( wasAdded ); | ||
| 148 | } | ||
| 132 | } | 149 | } |
| 133 | 150 | ||
| 134 | //// FIELDS //////// | 151 | //// FIELDS //////// |
| @@ -176,6 +193,16 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping> | |||
| 176 | assert( deobfWasRemoved ); | 193 | assert( deobfWasRemoved ); |
| 177 | } | 194 | } |
| 178 | } | 195 | } |
| 196 | |||
| 197 | public FieldMapping getFieldByObf( String obfName ) | ||
| 198 | { | ||
| 199 | return m_fieldsByObf.get( obfName ); | ||
| 200 | } | ||
| 201 | |||
| 202 | public FieldMapping getFieldByDeobf( String deobfName ) | ||
| 203 | { | ||
| 204 | return m_fieldsByDeobf.get( deobfName ); | ||
| 205 | } | ||
| 179 | 206 | ||
| 180 | public String getObfFieldName( String deobfName ) | 207 | public String getObfFieldName( String deobfName ) |
| 181 | { | 208 | { |
| @@ -212,8 +239,11 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping> | |||
| 212 | assert( wasRemoved ); | 239 | assert( wasRemoved ); |
| 213 | } | 240 | } |
| 214 | fieldMapping.setDeobfName( deobfName ); | 241 | fieldMapping.setDeobfName( deobfName ); |
| 215 | boolean wasAdded = m_fieldsByDeobf.put( deobfName, fieldMapping ) == null; | 242 | if( deobfName != null ) |
| 216 | assert( wasAdded ); | 243 | { |
| 244 | boolean wasAdded = m_fieldsByDeobf.put( deobfName, fieldMapping ) == null; | ||
| 245 | assert( wasAdded ); | ||
| 246 | } | ||
| 217 | } | 247 | } |
| 218 | 248 | ||
| 219 | //// METHODS //////// | 249 | //// METHODS //////// |
| @@ -303,20 +333,28 @@ public class ClassMapping implements Serializable, Comparable<ClassMapping> | |||
| 303 | assert( wasRemoved ); | 333 | assert( wasRemoved ); |
| 304 | } | 334 | } |
| 305 | methodMapping.setDeobfName( deobfName ); | 335 | methodMapping.setDeobfName( deobfName ); |
| 306 | boolean wasAdded = m_methodsByDeobf.put( getMethodKey( deobfName, obfSignature ), methodMapping ) == null; | 336 | if( deobfName != null ) |
| 307 | assert( wasAdded ); | 337 | { |
| 338 | boolean wasAdded = m_methodsByDeobf.put( getMethodKey( deobfName, obfSignature ), methodMapping ) == null; | ||
| 339 | assert( wasAdded ); | ||
| 340 | } | ||
| 308 | } | 341 | } |
| 309 | 342 | ||
| 310 | //// ARGUMENTS //////// | 343 | //// ARGUMENTS //////// |
| 311 | 344 | ||
| 312 | public void setArgumentName( String obfMethodName, String obfMethodSignature, int argumentIndex, String argumentName ) | 345 | public void setArgumentName( String obfMethodName, String obfMethodSignature, int argumentIndex, String argumentName ) |
| 313 | { | 346 | { |
| 314 | MethodMapping methodIndex = m_methodsByObf.get( getMethodKey( obfMethodName, obfMethodSignature ) ); | 347 | MethodMapping methodMapping = m_methodsByObf.get( getMethodKey( obfMethodName, obfMethodSignature ) ); |
| 315 | if( methodIndex == null ) | 348 | if( methodMapping == null ) |
| 316 | { | 349 | { |
| 317 | methodIndex = createMethodMapping( obfMethodName, obfMethodSignature ); | 350 | methodMapping = createMethodMapping( obfMethodName, obfMethodSignature ); |
| 318 | } | 351 | } |
| 319 | methodIndex.setArgumentName( argumentIndex, argumentName ); | 352 | methodMapping.setArgumentName( argumentIndex, argumentName ); |
| 353 | } | ||
| 354 | |||
| 355 | public void removeArgumentName( String obfMethodName, String obfMethodSignature, int argumentIndex ) | ||
| 356 | { | ||
| 357 | m_methodsByObf.get( getMethodKey( obfMethodName, obfMethodSignature ) ).removeArgumentName( argumentIndex ); | ||
| 320 | } | 358 | } |
| 321 | 359 | ||
| 322 | private MethodMapping createMethodMapping( String obfName, String obfSignature ) | 360 | private MethodMapping createMethodMapping( String obfName, String obfSignature ) |