org.jboss.byteman.agent.adapter
Class VariableAccessCheckAdapter.VariableAccessCheckMethodAdapter

java.lang.Object
  extended by MethodAdapter
      extended by org.jboss.byteman.agent.adapter.RuleMethodAdapter
          extended by org.jboss.byteman.agent.adapter.RuleCheckMethodAdapter
              extended by org.jboss.byteman.agent.adapter.VariableAccessCheckAdapter.VariableAccessCheckMethodAdapter
All Implemented Interfaces:
LocalScopeMethodVisitor
Enclosing class:
VariableAccessCheckAdapter

private class VariableAccessCheckAdapter.VariableAccessCheckMethodAdapter
extends RuleCheckMethodAdapter
implements LocalScopeMethodVisitor

a method visitor used to add a rule event trigger call to a method


Nested Class Summary
 
Nested classes/interfaces inherited from class org.jboss.byteman.agent.adapter.RuleMethodAdapter
RuleMethodAdapter.LocalVar
 
Field Summary
private  int access
           
private  java.lang.String descriptor
           
private  java.lang.String[] exceptions
           
private  int index
           
private  java.lang.String name
           
private  java.lang.String signature
           
private  int visitedCount
           
 
Fields inherited from class org.jboss.byteman.agent.adapter.RuleMethodAdapter
localVarsByName, rule, transformContext
 
Constructor Summary
VariableAccessCheckAdapter.VariableAccessCheckMethodAdapter(MethodVisitor mv, TransformContext transformContext, int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)
           
 
Method Summary
private  boolean matchCall(int opcode)
           
 void visitEnd()
           
 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.jboss.byteman.agent.adapter.RuleCheckMethodAdapter
checkBindings, isTriggerPoint, setTriggerPoint
 
Methods inherited from class org.jboss.byteman.agent.adapter.RuleMethodAdapter
getTriggerClass, lookup, visitLocalVariable
 
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

VariableAccessCheckAdapter.VariableAccessCheckMethodAdapter

VariableAccessCheckAdapter.VariableAccessCheckMethodAdapter(MethodVisitor mv,
                                                            TransformContext transformContext,
                                                            int access,
                                                            java.lang.String name,
                                                            java.lang.String descriptor,
                                                            java.lang.String signature,
                                                            java.lang.String[] exceptions)
Method Detail

visitEnd

public void visitEnd()

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)

visitIincInsn

public void visitIincInsn(int var,
                          int increment)