From 6d9552101f09e3fc0a201ccae481da563f64a178 Mon Sep 17 00:00:00 2001 From: md_5 Date: Wed, 3 Jul 2013 11:25:06 +1000 Subject: [PATCH] Revert "Close issue #3 - static and private inheritance" This reverts commit 33d8d24d7e9c620ad75d59162de59627df1ebb2e. --- .../net/md_5/specialsource/JarComparer.java | 4 +-- .../net/md_5/specialsource/JarMapping.java | 25 ++++++++----------- .../net/md_5/specialsource/JarRemapper.java | 8 +++--- .../java/net/md_5/specialsource/Ownable.java | 7 ------ .../specialsource/RemapperPreprocessor.java | 4 +-- 5 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/main/java/net/md_5/specialsource/JarComparer.java b/src/main/java/net/md_5/specialsource/JarComparer.java index 8657e50..d6e43dc 100644 --- a/src/main/java/net/md_5/specialsource/JarComparer.java +++ b/src/main/java/net/md_5/specialsource/JarComparer.java @@ -73,7 +73,7 @@ public class JarComparer extends ClassVisitor { @Override public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { - Ownable field = new Ownable(NodeType.FIELD, myName, name, desc, access); + Ownable field = new Ownable(NodeType.FIELD, myName, name, desc); fields.add(field); return null; // No need to get more info about a field! } @@ -82,7 +82,7 @@ public class JarComparer extends ClassVisitor { public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { // Check for initializers if (!name.equals("") && !name.equals("")) { - Ownable method = new Ownable(NodeType.METHOD, myName, name, desc, access); + Ownable method = new Ownable(NodeType.METHOD, myName, name, desc); methods.add(method); } // FIXME: Scan return types too! diff --git a/src/main/java/net/md_5/specialsource/JarMapping.java b/src/main/java/net/md_5/specialsource/JarMapping.java index 8301bbe..c7bdac3 100644 --- a/src/main/java/net/md_5/specialsource/JarMapping.java +++ b/src/main/java/net/md_5/specialsource/JarMapping.java @@ -39,15 +39,14 @@ import net.md_5.specialsource.transformer.MethodDescriptor; import net.md_5.specialsource.transformer.ChainingTransformer; import net.md_5.specialsource.transformer.MappingTransformer; import java.io.*; -import java.lang.reflect.Modifier; import java.util.*; public class JarMapping { public final LinkedHashMap packages = new LinkedHashMap(); public final Map classes = new HashMap(); - public final Map fields = new HashMap(); - public final Map methods = new HashMap(); + public final Map fields = new HashMap(); + public final Map methods = new HashMap(); private InheritanceMap inheritanceMap = new InheritanceMap(); private InheritanceProvider fallbackInheritanceProvider = null; private Set excludedPackages = new HashSet(); @@ -91,14 +90,10 @@ public class JarMapping { return false; } - public Ownable tryClimb(Map map, NodeType type, String owner, String name) { + public String tryClimb(Map map, NodeType type, String owner, String name) { String key = owner + "/" + name; - Ownable mapped = map.get(key); - if (mapped != null && (Modifier.isPrivate(mapped.getAccess()) || Modifier.isStatic(mapped.getAccess()))) { - return null; - } - + String mapped = map.get(key); if (mapped == null) { Collection parents = null; @@ -300,13 +295,13 @@ public class JarMapping { String oldClassName = inputTransformer.transformClassName(tokens[0]); String oldFieldName = inputTransformer.transformFieldName(tokens[0], tokens[1]); String newFieldName = outputTransformer.transformFieldName(tokens[0], tokens[2]); - fields.put(oldClassName + "/" + oldFieldName, new Ownable(NodeType.FIELD, newFieldName)); + fields.put(oldClassName + "/" + oldFieldName, newFieldName); } else if (tokens.length == 4) { String oldClassName = inputTransformer.transformClassName(tokens[0]); String oldMethodName = inputTransformer.transformMethodName(tokens[0], tokens[1], tokens[2]); String oldMethodDescriptor = inputTransformer.transformMethodDescriptor(tokens[2]); String newMethodName = outputTransformer.transformMethodName(tokens[0], tokens[3], tokens[2]); - methods.put(oldClassName + "/" + oldMethodName + " " + oldMethodDescriptor, new Ownable(NodeType.METHOD, newMethodName)); + methods.put(oldClassName + "/" + oldMethodName + " " + oldMethodDescriptor, newMethodName); } else { throw new IOException("Invalid csrg file line, token count " + tokens.length + " unexpected in " + line); } @@ -409,7 +404,7 @@ public class JarMapping { return; } - fields.put(oldClassName + "/" + oldFieldName, new Ownable(NodeType.FIELD, newFieldName)); + fields.put(oldClassName + "/" + oldFieldName, newFieldName); } else if (kind.equals("MD:")) { String oldFull = tokens[1]; String newFull = tokens[3]; @@ -444,7 +439,7 @@ public class JarMapping { return; } - methods.put(oldClassName + "/" + oldMethodName + " " + oldMethodDescriptor, new Ownable(NodeType.METHOD, newMethodName)); + methods.put(oldClassName + "/" + oldMethodName + " " + oldMethodDescriptor, newMethodName); } else { throw new IllegalArgumentException("Unable to parse srg file, unrecognized mapping type in line=" + line); } @@ -487,7 +482,7 @@ public class JarMapping { Ownable oldField = oldJar.fields.get(i); Ownable newField = newJar.fields.get(i); String key = oldField.owner + "/" + oldField.name; - fields.put(key, newField); + fields.put(key, newField.name); if (full || !oldField.name.equals(newField.name)) { srgWriter.addFieldMap(oldField, newField); @@ -497,7 +492,7 @@ public class JarMapping { Ownable oldMethod = oldJar.methods.get(i); Ownable newMethod = newJar.methods.get(i); String key = oldMethod.owner + "/" + oldMethod.name + " " + oldMethod.descriptor; - methods.put(key, newMethod); + methods.put(key, newMethod.name); MethodDescriptor methodDescriptorTransformer = new MethodDescriptor(null, classes); String oldDescriptor = methodDescriptorTransformer.transform(oldMethod.descriptor); diff --git a/src/main/java/net/md_5/specialsource/JarRemapper.java b/src/main/java/net/md_5/specialsource/JarRemapper.java index 60723c7..68c86fc 100644 --- a/src/main/java/net/md_5/specialsource/JarRemapper.java +++ b/src/main/java/net/md_5/specialsource/JarRemapper.java @@ -150,14 +150,14 @@ public class JarRemapper extends Remapper { @Override public String mapFieldName(String owner, String name, String desc) { - Ownable mapped = jarMapping.tryClimb(jarMapping.fields, NodeType.FIELD, owner, name); - return mapped == null ? name : mapped.name; + String mapped = jarMapping.tryClimb(jarMapping.fields, NodeType.FIELD, owner, name); + return mapped == null ? name : mapped; } @Override public String mapMethodName(String owner, String name, String desc) { - Ownable mapped = jarMapping.tryClimb(jarMapping.methods, NodeType.METHOD, owner, name + " " + desc); - return mapped == null ? name : mapped.name; + String mapped = jarMapping.tryClimb(jarMapping.methods, NodeType.METHOD, owner, name + " " + desc); + return mapped == null ? name : mapped; } /** diff --git a/src/main/java/net/md_5/specialsource/Ownable.java b/src/main/java/net/md_5/specialsource/Ownable.java index e2799ad..1366e69 100644 --- a/src/main/java/net/md_5/specialsource/Ownable.java +++ b/src/main/java/net/md_5/specialsource/Ownable.java @@ -29,23 +29,16 @@ package net.md_5.specialsource; import lombok.Data; -import lombok.RequiredArgsConstructor; /** * A class which can be used to represent a field, method, or anything else * which has an owner, a name and a descriptor. */ @Data -@RequiredArgsConstructor public class Ownable { public final NodeType type; public final String owner; public final String name; public final String descriptor; - public final int access; - - public Ownable(NodeType type, String name) { - this(type, null, name, null, -1); - } } diff --git a/src/main/java/net/md_5/specialsource/RemapperPreprocessor.java b/src/main/java/net/md_5/specialsource/RemapperPreprocessor.java index 1818b62..215b0b0 100644 --- a/src/main/java/net/md_5/specialsource/RemapperPreprocessor.java +++ b/src/main/java/net/md_5/specialsource/RemapperPreprocessor.java @@ -227,12 +227,12 @@ public class RemapperPreprocessor { } String className = ((Type) ldcClass.cst).getInternalName(); - Ownable newName = jarMapping.tryClimb(jarMapping.fields, NodeType.FIELD, className, fieldName); + String newName = jarMapping.tryClimb(jarMapping.fields, NodeType.FIELD, className, fieldName); logR("Remapping " + className + "/" + fieldName + " -> " + newName); if (newName != null) { // Change the string literal to the correct name - ldcField.cst = newName.name; + ldcField.cst = newName; //ldcClass.cst = className; // not remapped here - taken care of by JarRemapper } }