fix: ambiguity in mapping member names

This commit is contained in:
zaaarf 2023-03-31 12:56:40 +02:00
parent 44cec29b1c
commit 032d43d63c
No known key found for this signature in database
GPG key ID: 82240E075E31FA4C

View file

@ -189,7 +189,7 @@ public class ObfuscationMapper {
*/ */
public String get(String memberName, String methodDescriptor) { public String get(String memberName, String methodDescriptor) {
//find all keys that start with the name //find all keys that start with the name
List<String> candidates = members.keySet().stream().filter(m -> m.startsWith(memberName)).collect(Collectors.toList()); List<String> candidates = members.keySet().stream().filter(m -> m.equals(memberName.split(" ")[0])).collect(Collectors.toList());
if(methodDescriptor != null) { if(methodDescriptor != null) {
String signature = String.format("%s %s", memberName, methodDescriptor); String signature = String.format("%s %s", memberName, methodDescriptor);
candidates = candidates.stream().filter(m -> m.equals(signature)).collect(Collectors.toList()); candidates = candidates.stream().filter(m -> m.equals(signature)).collect(Collectors.toList());
@ -206,10 +206,11 @@ public class ObfuscationMapper {
return members.get(candidates.get(0)); return members.get(candidates.get(0));
default: default:
throw new AmbiguousDefinitionException(String.format( throw new AmbiguousDefinitionException(String.format(
"Mapper could not uniquely identify member %s.%s%s", "Mapper could not uniquely identify member %s.%s%s, found %d!",
this.unobf, this.unobf,
memberName, memberName,
methodDescriptor == null ? "" : "()" methodDescriptor == null ? "" : "()",
candidates.size()
)); ));
} }
} }