diff options
| author | 2014-09-30 00:25:36 -0400 | |
|---|---|---|
| committer | 2014-09-30 00:25:36 -0400 | |
| commit | a83bbfd5c510367a194073b1db132022cacf65ed (patch) | |
| tree | abfd7520b79ef1e64b7430bd81e75a30353b7f14 /src/cuchaz/enigma/mapping/MappingsReader.java | |
| parent | fixed recognition of static initializer tokens (diff) | |
| download | enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.tar.gz enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.tar.xz enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.zip | |
fixed nasty issue with renaming inner classes, but alas, more bugs remain
Diffstat (limited to 'src/cuchaz/enigma/mapping/MappingsReader.java')
| -rw-r--r-- | src/cuchaz/enigma/mapping/MappingsReader.java | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/src/cuchaz/enigma/mapping/MappingsReader.java b/src/cuchaz/enigma/mapping/MappingsReader.java index 5cbad59..4bd9f12 100644 --- a/src/cuchaz/enigma/mapping/MappingsReader.java +++ b/src/cuchaz/enigma/mapping/MappingsReader.java | |||
| @@ -78,10 +78,11 @@ public class MappingsReader | |||
| 78 | 78 | ||
| 79 | if( token.equalsIgnoreCase( "CLASS" ) ) | 79 | if( token.equalsIgnoreCase( "CLASS" ) ) |
| 80 | { | 80 | { |
| 81 | ClassMapping classMapping = readClass( parts ); | 81 | ClassMapping classMapping; |
| 82 | if( indent == 0 ) | 82 | if( indent == 0 ) |
| 83 | { | 83 | { |
| 84 | // outer class | 84 | // outer class |
| 85 | classMapping = readClass( parts, false ); | ||
| 85 | mappings.addClassMapping( classMapping ); | 86 | mappings.addClassMapping( classMapping ); |
| 86 | } | 87 | } |
| 87 | else if( indent == 1 ) | 88 | else if( indent == 1 ) |
| @@ -91,11 +92,13 @@ public class MappingsReader | |||
| 91 | { | 92 | { |
| 92 | throw new MappingParseException( lineNumber, "Unexpected CLASS entry here!" ); | 93 | throw new MappingParseException( lineNumber, "Unexpected CLASS entry here!" ); |
| 93 | } | 94 | } |
| 95 | |||
| 96 | classMapping = readClass( parts, true ); | ||
| 94 | ((ClassMapping)mappingStack.getFirst()).addInnerClassMapping( classMapping ); | 97 | ((ClassMapping)mappingStack.getFirst()).addInnerClassMapping( classMapping ); |
| 95 | } | 98 | } |
| 96 | else | 99 | else |
| 97 | { | 100 | { |
| 98 | throw new MappingParseException( lineNumber, "Unexpected CLASS entry here!" ); | 101 | throw new MappingParseException( lineNumber, "Unexpected CLASS entry nesting!" ); |
| 99 | } | 102 | } |
| 100 | mappingStack.push( classMapping ); | 103 | mappingStack.push( classMapping ); |
| 101 | } | 104 | } |
| @@ -140,28 +143,30 @@ public class MappingsReader | |||
| 140 | return new ArgumentMapping( Integer.parseInt( parts[1] ), parts[2] ); | 143 | return new ArgumentMapping( Integer.parseInt( parts[1] ), parts[2] ); |
| 141 | } | 144 | } |
| 142 | 145 | ||
| 143 | private ClassMapping readClass( String[] parts ) | 146 | private ClassMapping readClass( String[] parts, boolean makeSimple ) |
| 144 | { | 147 | { |
| 145 | if( parts.length == 2 ) | 148 | if( parts.length == 2 ) |
| 146 | { | 149 | { |
| 147 | String obfName = parts[1]; | 150 | String obfName = processName( parts[1], makeSimple ); |
| 148 | return new ClassMapping( moveClassOutOfDefaultPackage( obfName, Constants.NonePackage ) ); | 151 | return new ClassMapping( obfName ); |
| 149 | } | 152 | } |
| 150 | else | 153 | else |
| 151 | { | 154 | { |
| 152 | String obfName = parts[1]; | 155 | String obfName = processName( parts[1], makeSimple ); |
| 153 | String deobfName = parts[2]; | 156 | String deobfName = processName( parts[2], makeSimple ); |
| 154 | if( obfName.equals( deobfName ) ) | 157 | return new ClassMapping( obfName, deobfName ); |
| 155 | { | 158 | } |
| 156 | return new ClassMapping( moveClassOutOfDefaultPackage( obfName, Constants.NonePackage ) ); | 159 | } |
| 157 | } | 160 | |
| 158 | else | 161 | private String processName( String name, boolean makeSimple ) |
| 159 | { | 162 | { |
| 160 | return new ClassMapping( | 163 | if( makeSimple ) |
| 161 | moveClassOutOfDefaultPackage( parts[1], Constants.NonePackage ), | 164 | { |
| 162 | moveClassOutOfDefaultPackage( parts[2], Constants.NonePackage ) | 165 | return new ClassEntry( name ).getSimpleName(); |
| 163 | ); | 166 | } |
| 164 | } | 167 | else |
| 168 | { | ||
| 169 | return moveClassOutOfDefaultPackage( name, Constants.NonePackage ); | ||
| 165 | } | 170 | } |
| 166 | } | 171 | } |
| 167 | 172 | ||