Package org.jboss.byteman.agent.adapter
Class VariableAccessCheckAdapter.VariableAccessCheckMethodAdapter
- java.lang.Object
-
- org.objectweb.asm.MethodVisitor
-
- org.jboss.byteman.agent.adapter.RuleMethodAdapter
-
- org.jboss.byteman.agent.adapter.RuleCheckMethodAdapter
-
- 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
Fields Modifier and Type Field Description private intaccessprivate java.lang.Stringdescriptorprivate java.lang.String[]exceptionsprivate intindexprivate java.lang.Stringnameprivate java.lang.Stringsignatureprivate intvisitedCount-
Fields inherited from class org.jboss.byteman.agent.adapter.RuleMethodAdapter
localVarsByName, rule, transformContext
-
-
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 booleanmatchCall(int opcode)voidvisitIincInsn(int var, int increment)voidvisitLocalScopeEnd(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.voidvisitLocalScopeStart(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.voidvisitVarInsn(int opcode, int var)-
Methods inherited from class org.jboss.byteman.agent.adapter.RuleCheckMethodAdapter
checkBindings, getNewTypeParamDescriptor, getReturnBindingType, isTriggerPoint, setTriggerPoint, visitEnd
-
Methods inherited from class org.jboss.byteman.agent.adapter.RuleMethodAdapter
getTriggerClassName, lookup, visitLocalVariable
-
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
-
-
-
-
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:
visitLocalScopeStartin interfaceLocalScopeMethodVisitor- 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:
visitLocalScopeEndin interfaceLocalScopeMethodVisitor- Parameters:
name-desc-signature-stackSlot-
-
visitVarInsn
public void visitVarInsn(int opcode, int var)- Overrides:
visitVarInsnin classorg.objectweb.asm.MethodVisitor
-
visitIincInsn
public void visitIincInsn(int var, int increment)- Overrides:
visitIincInsnin classorg.objectweb.asm.MethodVisitor
-
-