package net.sourceforge.retroweaver; import org.objectweb.asm.ClassAdapter; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.FieldVisitor; import org.objectweb.asm.Label; import org.objectweb.asm.MethodAdapter; import org.objectweb.asm.MethodVisitor; public class SignatureStripper extends ClassAdapter { public SignatureStripper(ClassVisitor cv) { super(cv); } public void visit( final int version, final int access, final String name, final String signature, final String superName, final String[] interfaces) { super.visit(version, access, name, null, superName, interfaces); } public FieldVisitor visitField( final int access, final String name, final String desc, final String signature, final Object value) { return super.visitField(access, name, desc, null, value); } public MethodVisitor visitMethod( final int access, final String name, final String desc, final String signature, final String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, null, exceptions); return mv == null ? null : new MethodSignatureStripper(mv); } static class MethodSignatureStripper extends MethodAdapter { MethodSignatureStripper(MethodVisitor mv) { super(mv); } public void visitLocalVariable( final String name, final String desc, final String signature, final Label start, final Label end, final int index) { super.visitLocalVariable(name, desc, null, start, end, index); } } }