Example usage for org.objectweb.asm Opcodes ASM5

List of usage examples for org.objectweb.asm Opcodes ASM5

Introduction

In this page you can find the example usage for org.objectweb.asm Opcodes ASM5.

Prototype

int ASM5

To view the source code for org.objectweb.asm Opcodes ASM5.

Click Source Link

Usage

From source file:net.enilink.composition.asm.meta.ClassInfo.java

License:Open Source License

/**
 * Constructs a new {@link ClassNode}./*from ww  w.j av a  2s.  co m*/
 */
public ClassInfo() {
    super(Opcodes.ASM5);

    this.interfaces = new ArrayList<String>();
    this.methods = new HashMap<Method, MethodNode>();
}

From source file:net.enilink.composition.asm.meta.ClassInfo.java

License:Open Source License

public MethodVisitor visitMethod(final int access, final String name, final String desc, final String signature,
        final String[] exceptions) {
    MethodNode mn = new MethodNode(Opcodes.ASM5, access, name, desc, signature, exceptions) {
        public void visitEnd() {
            instructions.clear();//ww  w. j  a  v  a  2 s . c o  m
        }
    };
    methods.put(new Method(name, desc), mn);
    return mn;
}

From source file:net.enilink.composition.asm.util.InsnListGenerator.java

License:Open Source License

public InsnListGenerator(MethodNode mn) {
    super(Opcodes.ASM5, mn, mn.access, mn.name, mn.desc);
    this.mn = mn;
    this.instructions = mn.instructions;
}

From source file:net.fabricmc.base.util.mixin.MixinPrebaker.java

License:Apache License

public static byte[] desprinkle(byte[] cls) {
    ClassReader reader = new ClassReader(cls);
    ClassWriter writer = new ClassWriter(0);

    reader.accept(new DesprinklingClassVisitor(Opcodes.ASM5, writer), 0);
    return writer.toByteArray();
}

From source file:net.fabricmc.tinyremapper.TinyRemapper.java

License:Open Source License

private RClass analyze(Path srcPath, byte[] data, boolean saveData) {
    final RClass ret = new RClass(srcPath, saveData ? data : null);

    ClassReader reader = new ClassReader(data);

    reader.accept(new ClassVisitor(Opcodes.ASM5) {
        @Override//from   w w w. jav  a  2  s.co  m
        public void visit(int version, int access, String name, String signature, String superName,
                String[] interfaces) {
            ret.name = mapClass(name);
            ret.superName = mapClass(superName);
            ret.interfaces = new String[interfaces.length];
            for (int i = 0; i < interfaces.length; i++)
                ret.interfaces[i] = mapClass(interfaces[i]);
        }

        @Override
        public MethodVisitor visitMethod(int access, String name, String desc, String signature,
                String[] exceptions) {
            ret.methods.put(name + desc, new Member(name, desc, access));

            return null;
        }

        @Override
        public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
            ret.fields.put(name + ";;" + desc, new Member(name, desc, access));

            return null;
        }
    }, ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES | ClassReader.SKIP_CODE);

    return ret;
}

From source file:net.fabricmc.weave.merge.ClassMerger.java

License:Apache License

public byte[] addSideInformation(byte[] classSided, String side) {
    ClassReader reader = new ClassReader(classSided);
    ClassWriter writer = new ClassWriter(0);

    reader.accept(new SidedClassVisitor(Opcodes.ASM5, writer, side), 0);

    return writer.toByteArray();
}

From source file:net.fabricmc.weave.merge.ClassMerger.java

License:Apache License

public byte[] merge(byte[] classClient, byte[] classServer) {
    ClassReader readerC = new ClassReader(classClient);
    ClassReader readerS = new ClassReader(classServer);
    ClassWriter writer = new ClassWriter(0);

    ClassNode nodeC = new ClassNode(Opcodes.ASM5);
    readerC.accept(nodeC, 0);//from   w  w  w  . j  av a2  s .  c o m

    ClassNode nodeS = new ClassNode(Opcodes.ASM5);
    readerS.accept(nodeS, 0);

    ClassNode nodeOut = new ClassNode(Opcodes.ASM5);
    nodeOut.version = nodeC.version;
    nodeOut.access = nodeC.access;
    nodeOut.name = nodeC.name;
    nodeOut.signature = nodeC.signature;
    nodeOut.interfaces = nodeC.interfaces;
    nodeOut.superName = nodeC.superName;
    nodeOut.sourceFile = nodeC.sourceFile;
    nodeOut.sourceDebug = nodeC.sourceDebug;
    nodeOut.outerClass = nodeC.outerClass;
    nodeOut.outerMethod = nodeC.outerMethod;
    nodeOut.outerMethodDesc = nodeC.outerMethodDesc;

    nodeOut.invisibleAnnotations = nodeC.invisibleAnnotations;
    nodeOut.invisibleTypeAnnotations = nodeC.invisibleTypeAnnotations;
    nodeOut.visibleAnnotations = nodeC.visibleAnnotations;
    nodeOut.visibleTypeAnnotations = nodeC.visibleTypeAnnotations;
    nodeOut.attrs = nodeC.attrs;

    new Merger<InnerClassNode>(nodeC.innerClasses, nodeS.innerClasses) {
        @Override
        public String getName(InnerClassNode entry) {
            return entry.name;
        }

        @Override
        public void applySide(InnerClassNode entry, String side) {
        }
    }.merge(nodeOut.innerClasses);

    new Merger<FieldNode>(nodeC.fields, nodeS.fields) {
        @Override
        public String getName(FieldNode entry) {
            return entry.name + "," + entry.desc + "," + entry.signature;
        }

        @Override
        public void applySide(FieldNode entry, String side) {
            AnnotationVisitor av = entry.visitAnnotation("Lnet/fabricmc/api/Sided;", true);
            visitSideAnnotation(av, side);
        }
    }.merge(nodeOut.fields);

    new Merger<MethodNode>(nodeC.methods, nodeS.methods) {
        @Override
        public String getName(MethodNode entry) {
            return entry.name + "," + entry.desc + "," + entry.signature;
        }

        @Override
        public void applySide(MethodNode entry, String side) {
            AnnotationVisitor av = entry.visitAnnotation("Lnet/fabricmc/api/Sided;", true);
            visitSideAnnotation(av, side);
        }
    }.merge(nodeOut.methods);

    nodeOut.accept(writer);
    return writer.toByteArray();
}

From source file:net.minecraftforge.fml.common.discovery.asm.ModAnnotationVisitor.java

License:Open Source License

public ModAnnotationVisitor(ASMModParser discoverer) {
    super(Opcodes.ASM5);
    this.discoverer = discoverer;
}

From source file:net.minecraftforge.fml.common.discovery.asm.ModClassVisitor.java

License:Open Source License

public ModClassVisitor(ASMModParser discoverer) {
    super(Opcodes.ASM5);
    this.discoverer = discoverer;
}

From source file:net.minecraftforge.fml.common.discovery.asm.ModFieldVisitor.java

License:Open Source License

public ModFieldVisitor(String name, ASMModParser discoverer) {
    super(Opcodes.ASM5);
    this.fieldName = name;
    this.discoverer = discoverer;
}