Package org.objectweb.asm

Examples of org.objectweb.asm.ClassWriter


    private void resolvePredicate(byte[] predicateBytecode, String predicateClassName,
            Method predicateMethod,
            PredicateSubjectAnalysisDataContainer predicateAnalysisDataContainer)
    {
        ClassReader cr = new ClassReader(predicateBytecode);
        ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS
                | ClassWriter.COMPUTE_FRAMES);
        PredicateAnalizer cv = new PredicateAnalizer(cw,
                predicateMethod, predicateAnalysisDataContainer);//predicateAnalysisDataContainer._predicateAnalizer;
        cv.enableTransformation(true);
        cr.accept(cv, ClassReader.EXPAND_FRAMES);
        byte[] transformedPredicateBytecode = cw.toByteArray();
        defineClass(predicateClassName , transformedPredicateBytecode, 0, transformedPredicateBytecode.length);
        predicateAnalysisDataContainer._transformedQueryBytecode._predicateBytecode = transformedPredicateBytecode;
    }
View Full Code Here


        {
            String nextClass = predicateHierarchy[i];
            byte[] bytecode = predicateAnalysisDataContainer._predicateSubjectBytecode
                    .get(nextClass);
            ClassReader cr = new ClassReader(bytecode);
            ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS
                    | ClassWriter.COMPUTE_FRAMES);
            SubjectFieldAccessAnalizer predicateSubjectFieldAccessAnalizer = new SubjectFieldAccessAnalizer(cw, nextClass, predicateAnalysisDataContainer);
            cr.accept(predicateSubjectFieldAccessAnalizer,
                    ClassReader.EXPAND_FRAMES);
            if(predicateSubjectFieldAccessAnalizer._totalMethodsAnalized > 0){
View Full Code Here

public class StackMapAdder {

  public static byte[] addStackMaps(World world, byte[] data) {
    try {
      ClassReader cr = new ClassReader(data);
      ClassWriter cw = new AspectJConnectClassWriter(world);
      cr.accept(cw, 0);
      return cw.toByteArray();
    } catch (Throwable t) {
      System.err.println("AspectJ Internal Error: unable to add stackmap attributes. " + t.getMessage());
      AsmDetector.isAsmAround = false;
      return data;
    }
View Full Code Here

        return type.getMethod(method, args).getReturnType();
    }

    @Deprecated
    private ClassWriter createCtor(String namePath) throws Exception {
        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
        cw.visit(V1_4, ACC_PUBLIC + ACC_SUPER, namePath, null, SUPER_CLASS, null);
        MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
        mv.visitCode();
        mv.visitVarInsn(ALOAD, 0);
        mv.visitMethodInsn(INVOKESPECIAL, SUPER_CLASS, "<init>", "()V");
        Label line = new Label();
        mv.visitLineNumber(0, line);
View Full Code Here

        return cw;
    }

    @Deprecated
    private ClassWriter createCtorFast(String namePath) throws Exception {
        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
        cw.visit(V1_4, ACC_PUBLIC + ACC_SUPER, namePath, null, FAST_SUPER_CLASS, null);
        MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
        mv.visitCode();
        mv.visitVarInsn(ALOAD, 0);
        mv.visitMethodInsn(INVOKESPECIAL, FAST_SUPER_CLASS, "<init>", "()V");
        Label line = new Label();
        mv.visitLineNumber(0, line);
View Full Code Here

        mv.visitEnd();
        return cw;
    }

    private ClassWriter createBlockCtor(String namePath) throws Exception {
        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
        cw.visit(V1_4, ACC_PUBLIC + ACC_SUPER, namePath, null, p(AbstractCompiledBlockCallback.class), null);
        cw.visitField(ACC_PRIVATE | ACC_FINAL, "$scriptObject", ci(Object.class), null, null);
        SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw.visitMethod(ACC_PUBLIC, "<init>", sig(Void.TYPE, params(Object.class)), null, null));
        mv.start();
        mv.aload(0);
        mv.aload(1);
        mv.invokespecial(p(AbstractCompiledBlockCallback.class), "<init>", sig(void.class, Object.class));
        mv.voidreturn();
View Full Code Here

            Class c = tryClass(mname);
            try {
                if (c == null) {
                    Class[] signature = new Class[] { Block.class };
                    Class ret = getReturnClass(method, signature);
                    ClassWriter cw = createCtor(mnamePath);
                    MethodVisitor mv = startCall(cw);
                   
                    mv.visitVarInsn(ALOAD, 3);
                    mv.visitMethodInsn(INVOKEVIRTUAL, typePath, method, sig(ret, signature));
                    mv.visitInsn(ARETURN);
View Full Code Here

            try {
                Class[] descriptor = new Class[] {arg1};
                if (c == null) {
                    Class[] signature = new Class[] { arg1, Block.class };
                    Class ret = getReturnClass(method, signature);
                    ClassWriter cw = createCtor(mnamePath);
                    MethodVisitor mv = startCall(cw);
                   
                    loadArguments(mv, METHOD_ARGS_INDEX, 1, descriptor);

                    mv.visitVarInsn(ALOAD, 3);
View Full Code Here

            try {
                Class[] descriptor = new Class[] { arg1, arg2 };
                if (c == null) {
                    Class[] signature = new Class[] { arg1, arg2, Block.class };
                    Class ret = getReturnClass(method, signature);
                    ClassWriter cw = createCtor(mnamePath);
                    MethodVisitor mv = startCall(cw);
                   
                    loadArguments(mv, METHOD_ARGS_INDEX, 2, descriptor);

                    mv.visitVarInsn(ALOAD, 3);
View Full Code Here

                Class[] descriptor = new Class[] { arg1, arg2, arg3 };
                if (c == null) {
                    Class[] signature = new Class[] { arg1, arg2, arg3, Block.class };
                    Class ret = getReturnClass(method,
                            descriptor);
                    ClassWriter cw = createCtor(mnamePath);
                    MethodVisitor mv = startCall(cw);
                   
                    loadArguments(mv, METHOD_ARGS_INDEX, 3, descriptor);
                   
                    mv.visitVarInsn(ALOAD, 3);
View Full Code Here

TOP

Related Classes of org.objectweb.asm.ClassWriter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.