From 0a67556e85a26bcbc17bbb8ccba1fdc97e893469 Mon Sep 17 00:00:00 2001 From: asiekierka Date: Thu, 18 Aug 2016 14:51:48 +0200 Subject: add proper propagation of argument names --- .../java/cuchaz/enigma/mapping/MappingsRenamer.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java') 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 { classMapping.setMethodName(obf.getName(), obf.getSignature(), obf.getName()); } + public void setArgumentTreeName(ArgumentEntry obf, String deobfName) { + if (!(obf.getBehaviorEntry() instanceof MethodEntry)) { + setArgumentName(obf, deobfName); + return; + } + + MethodEntry obfMethod = (MethodEntry) obf.getBehaviorEntry(); + + Set implementations = m_index.getRelatedMethodImplementations(obfMethod); + for (MethodEntry entry : implementations) { + // NOTE: don't need to check arguments for name collisions with names determined by Procyon + if (m_mappings.containsArgument(entry, deobfName)) { + throw new IllegalNameException(deobfName, "There is already an argument with that name"); + } + } + + for (MethodEntry entry : implementations) { + setArgumentName(new ArgumentEntry(obf, entry), deobfName); + } + } + public void setArgumentName(ArgumentEntry obf, String deobfName) { deobfName = NameValidator.validateArgumentName(deobfName); // NOTE: don't need to check arguments for name collisions with names determined by Procyon -- cgit v1.2.3