Package org.objectweb.asm

Examples of org.objectweb.asm.ClassWriter.visitField()


        cw.visit(V1_5, ACC_PUBLIC | ACC_SUPER, pathName, null, p(Object.class), superTypeNames);
       
        // fields needed for dispatch and such
        cw.visitField(ACC_STATIC | ACC_PRIVATE, "ruby", ci(Ruby.class), null, null).visitEnd();
        cw.visitField(ACC_STATIC | ACC_PRIVATE, "rubyClass", ci(RubyClass.class), null, null).visitEnd();
        cw.visitField(ACC_PRIVATE | ACC_FINAL, "self", ci(IRubyObject.class), null, null).visitEnd();
       
        // create constructor
        SkinnyMethodAdapter initMethod = new SkinnyMethodAdapter(cw.visitMethod(ACC_PUBLIC, "<init>", sig(void.class, IRubyObject.class), null, null));
        initMethod.aload(0);
        initMethod.invokespecial(p(Object.class), "<init>", sig(void.class));
View Full Code Here


        for (Map.Entry<String, List<Method>> entry : simpleToAll.entrySet()) {
            String simpleName = entry.getKey();
            Set<String> nameSet = JavaUtil.getRubyNamesForJavaName(simpleName, entry.getValue());
               
            // all methods dispatch to the simple version by default, or method_missing if it's not present
            cw.visitField(ACC_STATIC | ACC_PUBLIC | ACC_VOLATILE, simpleName, ci(DynamicMethod.class), null, null).visitEnd();
           
            for (Method method : entry.getValue()) {
                Class[] paramTypes = method.getParameterTypes();
                Class returnType = method.getReturnType();
               
View Full Code Here

    }

    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));
View Full Code Here

            String super_class_name = EFUN_TYPE.getInternalName() + arity;
            cw.visit(Opcodes.V1_4, ACC_PUBLIC, self_type, null,
                    super_class_name, null);

            // create handler field
            cw.visitField(ACC_PRIVATE, "handler", EFUNHANDLER_TYPE.getDescriptor(), null, null)
                    .visitEnd();
            cw.visitField(ACC_PRIVATE | ACC_FINAL, "module_name", EATOM_DESC, null, null)
                    .visitEnd();
            cw.visitField(ACC_PRIVATE | ACC_FINAL, "function_name", EATOM_DESC, null, null)
                    .visitEnd();
View Full Code Here

                    super_class_name, null);

            // create handler field
            cw.visitField(ACC_PRIVATE, "handler", EFUNHANDLER_TYPE.getDescriptor(), null, null)
                    .visitEnd();
            cw.visitField(ACC_PRIVATE | ACC_FINAL, "module_name", EATOM_DESC, null, null)
                    .visitEnd();
            cw.visitField(ACC_PRIVATE | ACC_FINAL, "function_name", EATOM_DESC, null, null)
                    .visitEnd();

View Full Code Here

            // create handler field
            cw.visitField(ACC_PRIVATE, "handler", EFUNHANDLER_TYPE.getDescriptor(), null, null)
                    .visitEnd();
            cw.visitField(ACC_PRIVATE | ACC_FINAL, "module_name", EATOM_DESC, null, null)
                    .visitEnd();
            cw.visitField(ACC_PRIVATE | ACC_FINAL, "function_name", EATOM_DESC, null, null)
                    .visitEnd();


            // make constructor
            MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "<init>", "("
View Full Code Here

        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES|ClassWriter.COMPUTE_MAXS);
        cw.visit(Opcodes.V1_5, Opcodes.ACC_PUBLIC | Opcodes.ACC_ABSTRACT,
                self_type, null, super_type, null);

        cw.visitField(ACC_PROTECTED | ACC_FINAL, "module_name",
                EATOM_TYPE.getDescriptor(), null, null)
                .visitEnd();

        cw.visitField(ACC_PROTECTED | ACC_FINAL, "function_name",
                EATOM_TYPE.getDescriptor(), null, null)
View Full Code Here

        cw.visitField(ACC_PROTECTED | ACC_FINAL, "module_name",
                EATOM_TYPE.getDescriptor(), null, null)
                .visitEnd();

        cw.visitField(ACC_PROTECTED | ACC_FINAL, "function_name",
                EATOM_TYPE.getDescriptor(), null, null)
                .visitEnd();

        MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PROTECTED, "<init>", "(Ljava/lang/String;Ljava/lang/String;)V", null, null);
View Full Code Here

        }
        Type fieldType = Type.getType(fieldClass);

        // add a field for each one to the class
        String fieldName = "code" + fieldNum;
        cw.visitField(Opcodes.ACC_PRIVATE | Opcodes.ACC_FINAL, fieldName, fieldType.getDescriptor(), null, null);

        // set the fields to the passed in values in the constructor
        cm.loadThis();
        cm.loadArg(0);
        cm.push(fieldNum);
View Full Code Here

    cw.visit(V1_6, ACC_FINAL | ACC_PUBLIC, full_inner_name, null,
        super_class_name, null);

    if (lambda != null) {
      cw.visitField(ACC_STATIC | ACC_PUBLIC | ACC_FINAL, "index", "I",
          null, new Integer(lambda.index));
      cw.visitField(ACC_STATIC | ACC_PUBLIC | ACC_FINAL, "old_index",
          "I", null, new Integer(lambda.old_index));
      cw.visitField(ACC_STATIC | ACC_PUBLIC | ACC_FINAL, "old_uniq", "I",
          null, new Integer(lambda.old_uniq));
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. 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.