Remap inner class names.

This commit is contained in:
Lex Manos 2015-07-27 23:33:06 -07:00 committed by md_5
parent 4f879545c8
commit e87c7889c9

View File

@ -73,7 +73,7 @@ import org.objectweb.asm.commons.RemappingAnnotationAdapter;
/** /**
* A {@link ClassVisitor} for type remapping. * A {@link ClassVisitor} for type remapping.
* *
* @author Eugene Kuleshov * @author Eugene Kuleshov
*/ */
public class RemappingClassAdapter extends ClassVisitor { public class RemappingClassAdapter extends ClassVisitor {
@ -81,7 +81,7 @@ public class RemappingClassAdapter extends ClassVisitor {
protected final CustomRemapper remapper; protected final CustomRemapper remapper;
protected ClassRepo repo; protected ClassRepo repo;
protected String className; protected String className;
public RemappingClassAdapter(final ClassVisitor cv, final CustomRemapper remapper, ClassRepo repo) { public RemappingClassAdapter(final ClassVisitor cv, final CustomRemapper remapper, ClassRepo repo) {
this(Opcodes.ASM5, cv, remapper); this(Opcodes.ASM5, cv, remapper);
this.repo = repo; this.repo = repo;
@ -133,9 +133,11 @@ public class RemappingClassAdapter extends ClassVisitor {
@Override @Override
public void visitInnerClass(String name, String outerName, public void visitInnerClass(String name, String outerName,
String innerName, int access) { String innerName, int access) {
// TODO should innerName be changed? String newName = remapper.mapType(name);
super.visitInnerClass(remapper.mapType(name), outerName == null ? null super.visitInnerClass(newName,
: remapper.mapType(outerName), innerName, access); outerName == null ? null : remapper.mapType(outerName),
innerName == null ? null : newName.substring(newName.lastIndexOf(newName.contains("$") ? '$' : '/') + 1),
access);
} }
@Override @Override
@ -144,7 +146,7 @@ public class RemappingClassAdapter extends ClassVisitor {
: remapper.mapMethodName(owner, name, desc), : remapper.mapMethodName(owner, name, desc),
desc == null ? null : remapper.mapMethodDesc(desc)); desc == null ? null : remapper.mapMethodDesc(desc));
} }
protected FieldVisitor createRemappingFieldAdapter(FieldVisitor sup) { protected FieldVisitor createRemappingFieldAdapter(FieldVisitor sup) {
return new FieldVisitor(Opcodes.ASM5, sup) { return new FieldVisitor(Opcodes.ASM5, sup) {
@Override @Override
@ -191,7 +193,7 @@ public class RemappingClassAdapter extends ClassVisitor {
AnnotationVisitor av) { AnnotationVisitor av) {
return new RemappingAnnotationAdapter(av, remapper); return new RemappingAnnotationAdapter(av, remapper);
} }
@Override @Override
public void visitSource(String source, String debug) { public void visitSource(String source, String debug) {
if (!SpecialSource.kill_source && cv != null) { if (!SpecialSource.kill_source && cv != null) {