Package org.objectweb.asm

Examples of org.objectweb.asm.CodeVisitor.visitMethodInsn()


            generateGetRefState(mv, false);
            Label l1 = new Label();
            mv.visitJumpInsn(IFNULL, l1);
            // && (speedoReferenceState.getDetachedStatus() != DetachedLifeCycle.DETACHED_NONE)
            generateGetRefState(mv, false);
            mv.visitMethodInsn(INVOKEVIRTUAL, xfieldsAncestorJCN, "getDetachedStatus", "()B");
            Util.visitIntConstant(mv, DetachedLifeCycle.DETACHED_NONE);
            mv.visitInsn(I2B);
            mv.visitJumpInsn(IF_ICMPEQ, l1);
            // && !(($classNameFields) speedoReferenceState).${f.name}Loaded
            generateGetRefState(mv, true);
View Full Code Here


            mv.visitJumpInsn(IFNE, l1);
            {
                mv.visitTypeInsn(NEW, personality.getDetachedFieldAccessExceptionClassNameSlash());
                mv.visitInsn(DUP);
                mv.visitLdcInsn("Field " + f.getName() + " cannot be accessed: not loaded when the object has been detached");
                mv.visitMethodInsn(INVOKESPECIAL, personality.getDetachedFieldAccessExceptionClassNameSlash(), "<init>", "(Ljava/lang/String;)V");
                mv.visitInsn(ATHROW);
            }
            mv.visitLabel(l1);
        }
       
View Full Code Here

        }
       
        //StateItf sa = this.speedoReadIntention(new long[] { ... });
        mv.visitVarInsn(ALOAD, 0);
        generateFieldIdAsLongArray(f, nbField, mv);
        mv.visitMethodInsn(INVOKEVIRTUAL, classToWrite, "speedoReadIntention",
                "([J)" + JT_STATE);
        mv.visitTypeInsn(CHECKCAST, xfieldsJCN);
        mv.visitVarInsn(ASTORE, 1);

        //return sa.f1;
View Full Code Here

        int nextLocalVarIdx = 1 + ft.getSize();
        mv = cv.visitMethod(ACC_PUBLIC, f.getSetter(), "(" + ftd + ")V", null, null);

        //if (!speedoIsActive()) {
        mv.visitVarInsn(ALOAD, 0);
        mv.visitMethodInsn(INVOKEVIRTUAL, classToWrite, ISACTIVE_FIELD_NAME, "()Z");
        Label l1 = new Label();
        mv.visitJumpInsn(IFNE, l1);
        {
            //if(speedoReferenceState.getDetachedStatus() != DetachedLifeCycle.DETACHED_NONE) {
            generateGetRefState(mv, false);
View Full Code Here

        Label l1 = new Label();
        mv.visitJumpInsn(IFNE, l1);
        {
            //if(speedoReferenceState.getDetachedStatus() != DetachedLifeCycle.DETACHED_NONE) {
            generateGetRefState(mv, false);
            mv.visitMethodInsn(INVOKEVIRTUAL, xfieldsAncestorJCN, "getDetachedStatus", "()B");
            Util.visitIntConstant(mv, DetachedLifeCycle.DETACHED_NONE);
            mv.visitInsn(I2B);
            Label l3 = new Label();
            mv.visitJumpInsn(IF_ICMPEQ, l3);
            {
View Full Code Here

                    //throw new DetachedFieldAccessException("Field $f.name cannot be accessed: not loaded when the object has been detached");
                    mv.visitTypeInsn(NEW, personality.getDetachedFieldAccessExceptionClassNameSlash());
                    mv.visitInsn(DUP);
                    mv.visitLdcInsn("Field " + f.getName()
                            + " cannot be accessed: not loaded when the object has been detached");
                    mv.visitMethodInsn(INVOKESPECIAL, personality.getDetachedFieldAccessExceptionClassNameSlash(), "<init>", "(Ljava/lang/String;)V");
                    mv.visitInsn(ATHROW);
                }
                mv.visitLabel(l5);
                //mark the detached copy as dirty
                //speedoReferenceState.setDetachedStatus(DetachedLifeCycle.DETACHED_DIRTY);
View Full Code Here

                //mark the detached copy as dirty
                //speedoReferenceState.setDetachedStatus(DetachedLifeCycle.DETACHED_DIRTY);
                generateGetRefState(mv, false);
                Util.visitIntConstant(mv, DetachedLifeCycle.DETACHED_DIRTY);
                mv.visitInsn(I2B);
                mv.visitMethodInsn(INVOKEVIRTUAL, xfieldsAncestorJCN, "setDetachedStatus", "(B)V");
            }
            mv.visitLabel(l3);
            //(($classNameFields) speedoReferenceState).${f.name} = val;
            generateGetRefState(mv, true);
            mv.visitVarInsn(ft.getOpcode(ILOAD), 1);
View Full Code Here

        mv.visitLabel(l1);
        //The po is activated
        //Logger logger = ((org.objectweb.jorm.util.api.Loggable) getPClassMapping()).getLogger();
        mv.visitVarInsn(ALOAD, 0);
        mv.visitMethodInsn(INVOKEVIRTUAL, classToWrite, "getPClassMapping",
                "()Lorg/objectweb/jorm/api/PClassMapping;");
        mv.visitTypeInsn(CHECKCAST, "org/objectweb/jorm/util/api/Loggable");
        mv.visitMethodInsn(INVOKEINTERFACE, "org/objectweb/jorm/util/api/Loggable",
                "getLogger", "()Lorg/objectweb/util/monolog/api/Logger;");
        final int loggerIdx = nextLocalVarIdx;
View Full Code Here

        //Logger logger = ((org.objectweb.jorm.util.api.Loggable) getPClassMapping()).getLogger();
        mv.visitVarInsn(ALOAD, 0);
        mv.visitMethodInsn(INVOKEVIRTUAL, classToWrite, "getPClassMapping",
                "()Lorg/objectweb/jorm/api/PClassMapping;");
        mv.visitTypeInsn(CHECKCAST, "org/objectweb/jorm/util/api/Loggable");
        mv.visitMethodInsn(INVOKEINTERFACE, "org/objectweb/jorm/util/api/Loggable",
                "getLogger", "()Lorg/objectweb/util/monolog/api/Logger;");
        final int loggerIdx = nextLocalVarIdx;
        nextLocalVarIdx++;
        mv.visitVarInsn(ASTORE, loggerIdx);
View Full Code Here

        mv.visitVarInsn(ASTORE, loggerIdx);

        //$classNameFields state = ($classNameFields) speedoWriteIntention(${f.jormFielIdDecl});
        mv.visitVarInsn(ALOAD, 0);
        generateFieldIdAsLongArray(f, nbField, mv);
        mv.visitMethodInsn(INVOKEVIRTUAL, classToWrite, "speedoWriteIntention",
                "([J)" + JT_STATE);
        mv.visitTypeInsn(CHECKCAST, xfieldsJCN);
        final int stateIdx = nextLocalVarIdx;
        nextLocalVarIdx++;
        mv.visitVarInsn(ASTORE, stateIdx);
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.