diff options
| author | 2016-08-18 14:51:48 +0200 | |
|---|---|---|
| committer | 2016-08-18 14:51:48 +0200 | |
| commit | 0a67556e85a26bcbc17bbb8ccba1fdc97e893469 (patch) | |
| tree | 5563d02f731fba6f2cebc12bf824bafe1beb9bdb /src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java | |
| parent | bridged method fix did not apply to all cases of method implementation findin... (diff) | |
| download | enigma-fork-0a67556e85a26bcbc17bbb8ccba1fdc97e893469.tar.gz enigma-fork-0a67556e85a26bcbc17bbb8ccba1fdc97e893469.tar.xz enigma-fork-0a67556e85a26bcbc17bbb8ccba1fdc97e893469.zip | |
add proper propagation of argument names
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java b/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java index 8002813..5d23dc0 100644 --- a/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java +++ b/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java | |||
| @@ -148,6 +148,27 @@ public class MappingsRenamer { | |||
| 148 | classMapping.setMethodName(obf.getName(), obf.getSignature(), obf.getName()); | 148 | classMapping.setMethodName(obf.getName(), obf.getSignature(), obf.getName()); |
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | public void setArgumentTreeName(ArgumentEntry obf, String deobfName) { | ||
| 152 | if (!(obf.getBehaviorEntry() instanceof MethodEntry)) { | ||
| 153 | setArgumentName(obf, deobfName); | ||
| 154 | return; | ||
| 155 | } | ||
| 156 | |||
| 157 | MethodEntry obfMethod = (MethodEntry) obf.getBehaviorEntry(); | ||
| 158 | |||
| 159 | Set<MethodEntry> implementations = m_index.getRelatedMethodImplementations(obfMethod); | ||
| 160 | for (MethodEntry entry : implementations) { | ||
| 161 | // NOTE: don't need to check arguments for name collisions with names determined by Procyon | ||
| 162 | if (m_mappings.containsArgument(entry, deobfName)) { | ||
| 163 | throw new IllegalNameException(deobfName, "There is already an argument with that name"); | ||
| 164 | } | ||
| 165 | } | ||
| 166 | |||
| 167 | for (MethodEntry entry : implementations) { | ||
| 168 | setArgumentName(new ArgumentEntry(obf, entry), deobfName); | ||
| 169 | } | ||
| 170 | } | ||
| 171 | |||
| 151 | public void setArgumentName(ArgumentEntry obf, String deobfName) { | 172 | public void setArgumentName(ArgumentEntry obf, String deobfName) { |
| 152 | deobfName = NameValidator.validateArgumentName(deobfName); | 173 | deobfName = NameValidator.validateArgumentName(deobfName); |
| 153 | // NOTE: don't need to check arguments for name collisions with names determined by Procyon | 174 | // NOTE: don't need to check arguments for name collisions with names determined by Procyon |