Examples of Bytecode

This program produces a Code attribute including a bytecode sequence:

@see ConstPool @see CodeAttribute
  • objot.bytecode.Bytecode
  • org.hotswap.agent.javassist.bytecode.Bytecode
    tant pool table Bytecode b = new Bytecode(cp, 1, 0); b.addIconst(3); b.addReturn(CtClass.intType); CodeAttribute ca = b.toCodeAttribute();

    This program produces a Code attribute including a bytecode sequence:

    @see ConstPool @see CodeAttribute
  • org.jboss.forge.furnace.proxy.javassist.bytecode.Bytecode
    tant pool table Bytecode b = new Bytecode(cp, 1, 0); b.addIconst(3); b.addReturn(CtClass.intType); CodeAttribute ca = b.toCodeAttribute();

    This program produces a Code attribute including a bytecode sequence:

    @see ConstPool @see CodeAttribute

  • Examples of javassist.bytecode.Bytecode

        ConstPool cp = classfile.getConstPool();
        int this_class_index = cp.getThisClassInfo();
        MethodInfo minfo = new MethodInfo(cp, SETFIELDHANDLER_METHOD_NAME,
                                          SETFIELDHANDLER_METHOD_DESCRIPTOR);
        /* local variables | this | callback | */
        Bytecode code = new Bytecode(cp, 3, 3);
        // aload_0 // load this
        code.addAload(0);
        // aload_1 // load callback
        code.addAload(1);
        // putfield // put field "$JAVASSIST_CALLBACK" defined already
        code.addOpcode(Opcode.PUTFIELD);
        int field_index = cp.addFieldrefInfo(this_class_index,
                                             HANDLER_FIELD_NAME, HANDLER_FIELD_DESCRIPTOR);
        code.addIndex(field_index);
        // return
        code.addOpcode(Opcode.RETURN);
        minfo.setCodeAttribute(code.toCodeAttribute());
        minfo.setAccessFlags(AccessFlag.PUBLIC);
        classfile.addMethod(minfo);
      }
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

        int this_class_index = cp.getThisClassInfo();
        String desc = "()" + finfo.getDescriptor();
        MethodInfo minfo = new MethodInfo(cp, EACH_READ_METHOD_PREFIX
                                              + finfo.getName(), desc);
        /* local variables | target obj | each oldvalue | */
        Bytecode code = new Bytecode(cp, 5, 3);
        // aload_0
        code.addAload(0);
        // getfield // get each field
        code.addOpcode(Opcode.GETFIELD);
        int base_field_index = cp.addFieldrefInfo(this_class_index, finfo
            .getName(), finfo.getDescriptor());
        code.addIndex(base_field_index);
        // aload_0
        code.addAload(0);
        // invokeinterface // invoke Enabled.getInterceptFieldCallback()
        int enabled_class_index = cp.addClassInfo(FIELD_HANDLED_TYPE_NAME);
        code.addInvokeinterface(enabled_class_index,
                                GETFIELDHANDLER_METHOD_NAME, GETFIELDHANDLER_METHOD_DESCRIPTOR,
                                1);
        // ifnonnull
        code.addOpcode(Opcode.IFNONNULL);
        code.addIndex(4);
        // *return // each type
        addTypeDependDataReturn(code, finfo.getDescriptor());
        // *store_1 // each type
        addTypeDependDataStore(code, finfo.getDescriptor(), 1);
        // aload_0
        code.addAload(0);
        // invokeinterface // invoke Enabled.getInterceptFieldCallback()
        code.addInvokeinterface(enabled_class_index,
                                GETFIELDHANDLER_METHOD_NAME, GETFIELDHANDLER_METHOD_DESCRIPTOR,
                                1);
        // aload_0
        code.addAload(0);
        // ldc // name of the field
        code.addLdc(finfo.getName());
        // *load_1 // each type
        addTypeDependDataLoad(code, finfo.getDescriptor(), 1);
        // invokeinterface // invoke Callback.read*() // each type
        addInvokeFieldHandlerMethod(classfile, code, finfo.getDescriptor(),
                                    true);
        // *return // each type
        addTypeDependDataReturn(code, finfo.getDescriptor());

        minfo.setCodeAttribute(code.toCodeAttribute());
        minfo.setAccessFlags(AccessFlag.PUBLIC);
        classfile.addMethod(minfo);
      }
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

        int this_class_index = cp.getThisClassInfo();
        String desc = "(" + finfo.getDescriptor() + ")V";
        MethodInfo minfo = new MethodInfo(cp, EACH_WRITE_METHOD_PREFIX
                                              + finfo.getName(), desc);
        /* local variables | target obj | each oldvalue | */
        Bytecode code = new Bytecode(cp, 6, 3);
        // aload_0
        code.addAload(0);
        // invokeinterface // enabled.getInterceptFieldCallback()
        int enabled_class_index = cp.addClassInfo(FIELD_HANDLED_TYPE_NAME);
        code.addInvokeinterface(enabled_class_index,
                                GETFIELDHANDLER_METHOD_NAME, GETFIELDHANDLER_METHOD_DESCRIPTOR,
                                1);
        // ifnonnull (label1)
        code.addOpcode(Opcode.IFNONNULL);
        code.addIndex(9);
        // aload_0
        code.addAload(0);
        // *load_1
        addTypeDependDataLoad(code, finfo.getDescriptor(), 1);
        // putfield
        code.addOpcode(Opcode.PUTFIELD);
        int base_field_index = cp.addFieldrefInfo(this_class_index, finfo
            .getName(), finfo.getDescriptor());
        code.addIndex(base_field_index);
        code.growStack(-Descriptor.dataSize(finfo.getDescriptor()));
        // return ;
        code.addOpcode(Opcode.RETURN);
        // aload_0
        code.addAload(0);
        // dup
        code.addOpcode(Opcode.DUP);
        // invokeinterface // enabled.getInterceptFieldCallback()
        code.addInvokeinterface(enabled_class_index,
                                GETFIELDHANDLER_METHOD_NAME, GETFIELDHANDLER_METHOD_DESCRIPTOR,
                                1);
        // aload_0
        code.addAload(0);
        // ldc // field name
        code.addLdc(finfo.getName());
        // aload_0
        code.addAload(0);
        // getfield // old value of the field
        code.addOpcode(Opcode.GETFIELD);
        code.addIndex(base_field_index);
        code.growStack(Descriptor.dataSize(finfo.getDescriptor()) - 1);
        // *load_1
        addTypeDependDataLoad(code, finfo.getDescriptor(), 1);
        // invokeinterface // callback.write*(..)
        addInvokeFieldHandlerMethod(classfile, code, finfo.getDescriptor(),
                                    false);
        // putfield // new value of the field
        code.addOpcode(Opcode.PUTFIELD);
        code.addIndex(base_field_index);
        code.growStack(-Descriptor.dataSize(finfo.getDescriptor()));
        // return
        code.addOpcode(Opcode.RETURN);

        minfo.setCodeAttribute(code.toCodeAttribute());
        minfo.setAccessFlags(AccessFlag.PUBLIC);
        classfile.addMethod(minfo);
      }
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

            if (clinit != null)
                return clinit;

            checkModify();
            ClassFile cf = getClassFile2();
            Bytecode code = new Bytecode(cf.getConstPool(), 0, 0);
            modifyClassConstructor(cf, code, 0, 0);
            return getClassInitializer();
        }
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

            throws CannotCompileException, NotFoundException
        {
            if (fieldInitializers == null)
                return;

            Bytecode code = new Bytecode(cf.getConstPool(), 0, 0);
            Javac jv = new Javac(code, this);
            int stacksize = 0;
            boolean doInit = false;
            for (FieldInitLink fi = fieldInitializers; fi != null; fi = fi.next) {
                CtField f = fi.field;
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

                MethodInfo minfo = (MethodInfo)list.get(i);
                if (minfo.isConstructor()) {
                    CodeAttribute codeAttr = minfo.getCodeAttribute();
                    if (codeAttr != null)
                        try {
                            Bytecode init = new Bytecode(cp, 0,
                                                    codeAttr.getMaxLocals());
                            CtClass[] params
                                = Descriptor.getParameterTypes(
                                                    minfo.getDescriptor(),
                                                    classPool);
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

            if (clinit != null)
                return clinit;

            checkModify();
            ClassFile cf = getClassFile2();
            Bytecode code = new Bytecode(cf.getConstPool(), 0, 0);
            modifyClassConstructor(cf, code, 0, 0);
            return getClassInitializer();
        }
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

            throws CannotCompileException, NotFoundException
        {
            if (fieldInitializers == null)
                return;

            Bytecode code = new Bytecode(cf.getConstPool(), 0, 0);
            Javac jv = new Javac(code, this);
            int stacksize = 0;
            boolean doInit = false;
            for (FieldInitLink fi = fieldInitializers; fi != null; fi = fi.next) {
                CtField f = fi.field;
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

                MethodInfo minfo = (MethodInfo)list.get(i);
                if (minfo.isConstructor()) {
                    CodeAttribute codeAttr = minfo.getCodeAttribute();
                    if (codeAttr != null)
                        try {
                            Bytecode init = new Bytecode(cp, 0,
                                                    codeAttr.getMaxLocals());
                            CtClass[] params
                                = Descriptor.getParameterTypes(
                                                    minfo.getDescriptor(),
                                                    classPool);
    View Full Code Here

    Examples of javassist.bytecode.Bytecode

            if (clinit != null)
                return clinit;

            checkModify();
            ClassFile cf = getClassFile2();
            Bytecode code = new Bytecode(cf.getConstPool(), 0, 0);
            modifyClassConstructor(cf, code, 0, 0);
            return getClassInitializer();
        }
    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.