private class VariableAccessTriggerAdapter.VariableAccessTriggerMethodAdapter extends RuleTriggerMethodAdapter implements LocalScopeMethodVisitor
RuleMethodAdapter.LocalVar
Modifier and Type | Field and Description |
---|---|
private int |
index |
protected boolean |
latched
flag used by subclass to avoid inserting trigger until after super constructor has been called
|
private int |
visitedCount |
exceptions
ADD, AND, DIV, EQ, GE, GT, LE, LT, MUL, NE, NEG, OR, REM, SHL, SHR, SUB, USHR, XOR
access, descriptor, localVarsByName, name, rule, transformContext
Constructor and Description |
---|
VariableAccessTriggerAdapter.VariableAccessTriggerMethodAdapter(MethodVisitor mv,
TransformContext transformContext,
int access,
java.lang.String name,
java.lang.String descriptor,
java.lang.String signature,
java.lang.String[] exceptions) |
Modifier and Type | Method and 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)
override this so we can see track which local var slots are in use and avoid overwriting them
|
getInvokedTypes, getMethodName, getReturnBindingType, inBytemanHandler, inBytemanTrigger, injectTriggerPoint, inRethrowHandler, visitCode, visitEnd, visitFieldInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMultiANewArrayInsn, visitTableSwitchInsn, visitTriggerEnd, visitTriggerStart, visitTryCatchBlock, visitTypeInsn
arrayLength, arrayLoad, arrayStore, box, cast, catchException, checkCast, dup, dup2, dup2X1, dup2X2, dupX1, dupX2, endMethod, getField, getLocalType, getStatic, goTo, ifCmp, ifICmp, ifNonNull, ifNull, ifZCmp, iinc, instanceOf, invokeConstructor, invokeInterface, invokeStatic, invokeVirtual, loadArg, loadArgArray, loadArgs, loadArgs, loadLocal, loadThis, mark, mark, math, monitorEnter, monitorExit, newArray, newInstance, newLabel, newLocal, not, pop, pop2, popLocal, push, push, push, push, push, push, push, putField, putStatic, ret, returnValue, storeArg, storeLocal, swap, swap, tableSwitch, tableSwitch, throwException, throwException, unbox, visitFrame
getTriggerClass, lookup, visitLocalVariable
protected boolean latched
private int index
private int visitedCount
VariableAccessTriggerAdapter.VariableAccessTriggerMethodAdapter(MethodVisitor mv, TransformContext transformContext, int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)
public void visitLocalScopeStart(java.lang.String name, java.lang.String desc, java.lang.String signature, int stackSlot, int startOffset)
visitLocalScopeStart
in interface LocalScopeMethodVisitor
name
- desc
- signature
- stackSlot
- public void visitLocalScopeEnd(java.lang.String name, java.lang.String desc, java.lang.String signature, int stackSlot, int endOffset)
visitLocalScopeEnd
in interface LocalScopeMethodVisitor
name
- desc
- signature
- stackSlot
- public void visitVarInsn(int opcode, int var)
RuleGeneratorAdapter
visitVarInsn
in class RuleTriggerMethodAdapter
public void visitIincInsn(int var, int increment)
visitIincInsn
in class RuleTriggerMethodAdapter
private boolean matchCall(int opcode)