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:com.geeksaga.light.profiler.instrument.transformer.EntryPointTransformer.java
License:Apache License
private byte[] transform(final ClassLoader classLoader, final String className, byte[] classfileBuffer) { final MethodSelector methodSelector = getMethodSelectorOrNull(className); if (methodSelector != null) { ClassNodeWrapper classNodeWrapper = new ClassNodeWrapper(); ClassReader reader = new ClassReaderWrapper(classfileBuffer); reader.accept(new ClassVisitor(Opcodes.ASM5, classNodeWrapper) { @Override// www . j ava2s . c om public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); if (!name.startsWith("<") && methodSelector.isSelected(name, desc)) { logger.debug("Transform => {}.{}{}", className, name, desc); return new EntryPointAdapter(access, name, desc, mv, ASMUtil.isStatic(access)); } return mv; } }, ClassReader.EXPAND_FRAMES); return ASMUtil.toBytes(classNodeWrapper); } return null; }
From source file:com.geeksaga.light.profiler.instrument.transformer.EntryPointTransformer.java
License:Apache License
private ClassNodeWrapper transform(final ClassLoader classLoader, byte[] classfileBuffer, final ClassNodeWrapper classNodeWrapper) { final MethodSelector methodSelector = getMethodSelectorOrNull(classNodeWrapper.getClassName()); if (methodSelector != null) { ClassNodeWrapper newClassNodeWrapper = new ClassNodeWrapper(); classNodeWrapper.accept(new ClassVisitor(Opcodes.ASM5, newClassNodeWrapper) { @Override/*from w w w . j av a 2 s. co m*/ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); if (!name.startsWith("<") && methodSelector.isSelected(name, desc)) { logger.debug("Transform => {}.{}{}", classNodeWrapper.getClassName(), name, desc); return new EntryPointAdapter(access, name, desc, mv, ASMUtil.isStatic(access)); } return mv; } }); byte[] hookedClassFileBuffer = ASMUtil.toBytes(newClassNodeWrapper); ClassFileDumper.dump(classNodeWrapper.getClassName(), classfileBuffer, hookedClassFileBuffer); return newClassNodeWrapper; } return classNodeWrapper; }
From source file:com.geeksaga.light.profiler.instrument.transformer.MethodParameterTransformer.java
License:Apache License
@Override public byte[] transform(ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { if (filter.allow(classLoader, className)) { logger.info("Transform => " + className); ClassNodeWrapper classNodeWrapper = new ClassNodeWrapper(); ClassReader reader = new ClassReaderWrapper(classfileBuffer); reader.accept(new ClassVisitor(Opcodes.ASM5, classNodeWrapper) { @Override//from w ww .ja va 2s.c om public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodVisitor methodVisitor = cv.visitMethod(access, name, desc, signature, exceptions); if (name.contains("<")) { return methodVisitor; } return new MethodParameterVisitor(access, desc, methodVisitor, ASMUtil.isStatic(access)); } }, ClassReader.EXPAND_FRAMES); if (classNodeWrapper.isInterface()) { return classfileBuffer; } byte[] bytes = ASMUtil.toBytes(classNodeWrapper); save(System.getProperty("user.dir") + File.separator + "Main.class", bytes); return bytes; } return classfileBuffer; }
From source file:com.geeksaga.light.profiler.instrument.transformer.MethodReturnTransformer.java
License:Apache License
@Override public byte[] transform(ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { if (filter.allow(classLoader, className)) { logger.info("Transform => " + className); try {/*www. j a v a 2 s . c o m*/ ClassNodeWrapper classNodeWrapper = new ClassNodeWrapper(); ClassReader reader = new ClassReaderWrapper(classfileBuffer); reader.accept(new ClassVisitor(Opcodes.ASM5, classNodeWrapper) { @Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodVisitor methodVisitor = cv.visitMethod(access, name, desc, signature, exceptions); if (name.contains("<")) { return methodVisitor; } return new MethodReturnVisitor(access, desc, methodVisitor, ASMUtil.isStatic(access)); } }, ClassReader.EXPAND_FRAMES); if (classNodeWrapper.isInterface()) { return classfileBuffer; } return ASMUtil.toBytes(classNodeWrapper); } catch (Exception e) { e.printStackTrace(); } } return classfileBuffer; }
From source file:com.geeksaga.light.profiler.instrument.transformer.MethodTransformer.java
License:Apache License
@Override public byte[] transform(ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { if (filter.allow(classLoader, className)) { ClassNodeWrapper classNodeWrapper = new ClassNodeWrapper(); ClassReader reader = new ClassReaderWrapper(classfileBuffer); reader.accept(new ClassVisitor(Opcodes.ASM5, classNodeWrapper) { @Override// w w w . j ava2 s . c o m public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodVisitor mv = cv.visitMethod(access, name, desc, signature, exceptions); return new MethodAdapter(access, name, desc, mv); } }, ClassReader.EXPAND_FRAMES); if (classNodeWrapper.isInterface()) { return classfileBuffer; } return ASMUtil.toBytes(classNodeWrapper); } return classfileBuffer; }
From source file:com.geeksaga.light.profiler.util.ASMUtil.java
License:Apache License
private static ClassVisitor useJSRInlinerAdapter(ClassVisitor visitor) { return new ClassVisitor(Opcodes.ASM5, visitor) { @Override//from w w w . j a v a 2 s . co m public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { return new JSRInlinerAdapter(super.visitMethod(access, name, desc, signature, exceptions), access, name, desc, signature, exceptions); } }; }
From source file:com.github.anba.es6draft.compiler.assembler.SimpleTypeTextifier.java
License:Open Source License
public SimpleTypeTextifier() { super(Opcodes.ASM5); }
From source file:com.github.antag99.retinazer.weaver.Weaver.java
License:Open Source License
/** * Returns a class visitor that creates the given class. * * @param internalName/*from ww w . j a v a2 s.c o m*/ * the internal name of the class. * @return * the class visitor. */ ClassVisitor createClass(final String internalName) { return new ClassVisitor(Opcodes.ASM5, new ClassWriter(ClassWriter.COMPUTE_FRAMES)) { @Override public void visitEnd() { super.visitEnd(); handler.saveClass(internalName, ((ClassWriter) cv).toByteArray()); } }; }
From source file:com.github.fge.grappa.transform.AsmTestUtils.java
License:Apache License
public static String getClassDump(byte[] code) { StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); TraceClassVisitor traceClassVisitor = new TraceClassVisitor(printWriter); ClassVisitor checkClassAdapter = new ClassVisitor(Opcodes.ASM5, traceClassVisitor) { };//from w ww . j a v a 2 s . com //ClassAdapter checkClassAdapter = new CheckClassAdapter(traceClassVisitor); ClassReader classReader; classReader = new ClassReader(code); classReader.accept(checkClassAdapter, 0); printWriter.flush(); return stringWriter.toString(); }
From source file:com.github.fge.grappa.transform.base.ParserClassNode.java
License:Open Source License
public ParserClassNode(Class<?> parentClass) { super(Opcodes.ASM5); this.parentClass = Objects.requireNonNull(parentClass); parentType = Type.getType(parentClass); }