diff options
| author | 2016-10-30 23:37:29 +0100 | |
|---|---|---|
| committer | 2016-10-30 23:37:29 +0100 | |
| commit | 6235bfc5ab85cdd471e315c52c413991fb9dbddf (patch) | |
| tree | f8d726850a60786176f999952c2e9f7c83e5ccbd /src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java | |
| parent | Fix order of packages, hanging of Enigma and classes nodes not renamed when p... (diff) | |
| download | enigma-fork-6235bfc5ab85cdd471e315c52c413991fb9dbddf.tar.gz enigma-fork-6235bfc5ab85cdd471e315c52c413991fb9dbddf.tar.xz enigma-fork-6235bfc5ab85cdd471e315c52c413991fb9dbddf.zip | |
BREAKING CHANGE: Implement modifier transformer
Known Bugs:
- Inner class modifier isn't saved to mapping
- Inner class modifier isn't applied to bytecode
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java b/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java index 93276a6..cdfed72 100644 --- a/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java +++ b/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java | |||
| @@ -135,21 +135,51 @@ public class MappingsEnigmaReader | |||
| 135 | private ClassMapping readClass(String[] parts, boolean makeSimple) { | 135 | private ClassMapping readClass(String[] parts, boolean makeSimple) { |
| 136 | if (parts.length == 2) { | 136 | if (parts.length == 2) { |
| 137 | return new ClassMapping(parts[1]); | 137 | return new ClassMapping(parts[1]); |
| 138 | } else { | 138 | } else if (parts.length == 3) { |
| 139 | return new ClassMapping(parts[1], parts[2]); | 139 | boolean access = parts[2].startsWith("ACC:"); |
| 140 | } | 140 | ClassMapping mapping; |
| 141 | if (access) | ||
| 142 | mapping = new ClassMapping(parts[1], null, Mappings.EntryModifier.valueOf(parts[2].substring(4))); | ||
| 143 | else | ||
| 144 | mapping = new ClassMapping(parts[1], parts[2]); | ||
| 145 | |||
| 146 | return mapping; | ||
| 147 | } else if (parts.length == 4) | ||
| 148 | return new ClassMapping(parts[1], parts[2], Mappings.EntryModifier.valueOf(parts[3].substring(4))); | ||
| 149 | return null; | ||
| 141 | } | 150 | } |
| 142 | 151 | ||
| 143 | /* TEMP */ | 152 | /* TEMP */ |
| 144 | protected FieldMapping readField(String[] parts) { | 153 | protected FieldMapping readField(String[] parts) { |
| 145 | return new FieldMapping(parts[1], new Type(parts[3]), parts[2]); | 154 | FieldMapping mapping = null; |
| 155 | if (parts.length == 4) | ||
| 156 | { | ||
| 157 | boolean access = parts[3].startsWith("ACC:"); | ||
| 158 | if (access) | ||
| 159 | mapping = new FieldMapping(parts[1], new Type(parts[2]), null, | ||
| 160 | Mappings.EntryModifier.valueOf(parts[3].substring(4))); | ||
| 161 | else | ||
| 162 | mapping = new FieldMapping(parts[1], new Type(parts[3]), parts[2], Mappings.EntryModifier.UNCHANGED); | ||
| 163 | } | ||
| 164 | else if (parts.length == 5) | ||
| 165 | mapping = new FieldMapping(parts[1], new Type(parts[3]), parts[2], Mappings.EntryModifier.valueOf(parts[4].substring(4))); | ||
| 166 | return mapping; | ||
| 146 | } | 167 | } |
| 147 | 168 | ||
| 148 | private MethodMapping readMethod(String[] parts) { | 169 | private MethodMapping readMethod(String[] parts) { |
| 149 | if (parts.length == 3) { | 170 | MethodMapping mapping = null; |
| 150 | return new MethodMapping(parts[1], new Signature(parts[2])); | 171 | if (parts.length == 3) |
| 151 | } else { | 172 | mapping = new MethodMapping(parts[1], new Signature(parts[2])); |
| 152 | return new MethodMapping(parts[1], new Signature(parts[3]), parts[2]); | 173 | else if (parts.length == 4){ |
| 174 | boolean access = parts[3].startsWith("ACC:"); | ||
| 175 | if (access) | ||
| 176 | mapping = new MethodMapping(parts[1], new Signature(parts[2]), null, Mappings.EntryModifier.valueOf(parts[3].substring(4))); | ||
| 177 | else | ||
| 178 | mapping = new MethodMapping(parts[1], new Signature(parts[3]), parts[2]); | ||
| 153 | } | 179 | } |
| 180 | else if (parts.length == 5) | ||
| 181 | mapping = new MethodMapping(parts[1], new Signature(parts[3]), parts[2], | ||
| 182 | Mappings.EntryModifier.valueOf(parts[4].substring(4))); | ||
| 183 | return mapping; | ||
| 154 | } | 184 | } |
| 155 | } | 185 | } |