List of usage examples for org.objectweb.asm Opcodes ASM5
int ASM5
To view the source code for org.objectweb.asm Opcodes ASM5.
Click Source Link
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; }