Add field access checking. Still convinced this will map the declarations correctly but not the invocations.

This commit is contained in:
md_5 2013-08-05 16:38:54 +10:00
parent b83f20f9a9
commit e7b7d101da
2 changed files with 19 additions and 3 deletions

View File

@ -148,8 +148,8 @@ public class JarRemapper extends Remapper {
} }
@Override @Override
public String mapFieldName(String owner, String name, String desc) { public String mapFieldName(String owner, String name, String desc, int access) {
String mapped = jarMapping.tryClimb(jarMapping.fields, NodeType.FIELD, owner, name, 0); String mapped = jarMapping.tryClimb(jarMapping.fields, NodeType.FIELD, owner, name, access);
return mapped == null ? name : mapped; return mapped == null ? name : mapped;
} }
@ -248,6 +248,16 @@ public class JarRemapper extends Remapper {
newDesc, mv); newDesc, mv);
} }
@Override
public FieldVisitor visitField(int access, String name, String desc,
String signature, Object value) {
FieldVisitor fv = super.visitField(access,
remapper.mapFieldName(className, name, desc, access),
remapper.mapDesc(desc), remapper.mapSignature(signature, true),
remapper.mapValue(value));
return fv == null ? null : createRemappingFieldAdapter(fv);
}
@Override @Override
protected MethodVisitor createRemappingMethodAdapter(int access, String newDesc, MethodVisitor sup) { protected MethodVisitor createRemappingMethodAdapter(int access, String newDesc, MethodVisitor sup) {
MethodVisitor remap = new UnsortedRemappingMethodAdapter(access, newDesc, sup, remapper); MethodVisitor remap = new UnsortedRemappingMethodAdapter(access, newDesc, sup, remapper);

View File

@ -183,7 +183,7 @@ public abstract class Remapper {
* @return new name of the method * @return new name of the method
*/ */
public String mapMethodName(String owner, String name, String desc) { public String mapMethodName(String owner, String name, String desc) {
return mapMethodName(owner, name, desc, 0); // Spigot return mapMethodName(owner, name, desc, 0); // SS
} }
// SS Start // SS Start
@ -217,8 +217,14 @@ public abstract class Remapper {
* @return new name of the field. * @return new name of the field.
*/ */
public String mapFieldName(String owner, String name, String desc) { public String mapFieldName(String owner, String name, String desc) {
return mapFieldName(owner, name, desc, 0); // SS
}
// SS Start
public String mapFieldName(String owner, String name, String desc, int access) {
return name; return name;
} }
// SS End
/** /**
* Map type name to the new name. Subclasses can override. * Map type name to the new name. Subclasses can override.