Class VariableAccessCheckAdapter.VariableAccessCheckMethodAdapter

    • Constructor Summary

      Constructors 
      Constructor Description
      VariableAccessCheckMethodAdapter​(org.objectweb.asm.MethodVisitor mv, TransformContext transformContext, int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private boolean matchCall​(int opcode)  
      void visitIincInsn​(int var, int increment)  
      void visitLocalScopeEnd​(java.lang.String name, java.lang.String desc, java.lang.String signature, int stackSlot, int endOffset)
      checks if the local var going out of scope is the one mentioned in the rule location and if so records that the slot is no longer active.
      void visitLocalScopeStart​(java.lang.String name, java.lang.String desc, java.lang.String signature, int stackSlot, int startOffset)
      checks if the local var coming into scope is the one mentioned in the rule location and if so records which slot is now being used to store the variable.
      void visitVarInsn​(int opcode, int var)  
      • Methods inherited from class org.objectweb.asm.MethodVisitor

        visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitFieldInsn, visitFrame, visitInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariableAnnotation, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation, visitTypeInsn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • access

        private int access
      • name

        private java.lang.String name
      • descriptor

        private java.lang.String descriptor
      • signature

        private java.lang.String signature
      • exceptions

        private java.lang.String[] exceptions
      • index

        private int index
      • visitedCount

        private int visitedCount
    • Constructor Detail

      • VariableAccessCheckMethodAdapter

        VariableAccessCheckMethodAdapter​(org.objectweb.asm.MethodVisitor mv,
                                         TransformContext transformContext,
                                         int access,
                                         java.lang.String name,
                                         java.lang.String descriptor,
                                         java.lang.String signature,
                                         java.lang.String[] exceptions)
    • Method Detail

      • matchCall

        private boolean matchCall​(int opcode)
      • visitLocalScopeStart

        public void visitLocalScopeStart​(java.lang.String name,
                                         java.lang.String desc,
                                         java.lang.String signature,
                                         int stackSlot,
                                         int startOffset)
        checks if the local var coming into scope is the one mentioned in the rule location and if so records which slot is now being used to store the variable. this is called by the BMJSRInliner which feeds this adapter because this adapter implements LocalScopeMethodVisitor
        Specified by:
        visitLocalScopeStart in interface LocalScopeMethodVisitor
        Parameters:
        name -
        desc -
        signature -
        stackSlot -
      • visitLocalScopeEnd

        public void visitLocalScopeEnd​(java.lang.String name,
                                       java.lang.String desc,
                                       java.lang.String signature,
                                       int stackSlot,
                                       int endOffset)
        checks if the local var going out of scope is the one mentioned in the rule location and if so records that the slot is no longer active. this is called by the BMJSRInliner which feeds this adapter because this adapter implements LocalScopeMethodVisitor
        Specified by:
        visitLocalScopeEnd in interface LocalScopeMethodVisitor
        Parameters:
        name -
        desc -
        signature -
        stackSlot -
      • visitVarInsn

        public void visitVarInsn​(int opcode,
                                 int var)
        Overrides:
        visitVarInsn in class org.objectweb.asm.MethodVisitor
      • visitIincInsn

        public void visitIincInsn​(int var,
                                  int increment)
        Overrides:
        visitIincInsn in class org.objectweb.asm.MethodVisitor