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 |
exceptionsADD, AND, DIV, EQ, GE, GT, LE, LT, MUL, NE, NEG, OR, REM, SHL, SHR, SUB, USHR, XORaccess, 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, visitTypeInsnarrayLength, 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, visitFramegetTriggerClass, lookup, visitLocalVariableprotected 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 LocalScopeMethodVisitorname - 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 LocalScopeMethodVisitorname - desc - signature - stackSlot - public void visitVarInsn(int opcode,
int var)
RuleGeneratorAdaptervisitVarInsn in class RuleTriggerMethodAdapterpublic void visitIincInsn(int var,
int increment)
visitIincInsn in class RuleTriggerMethodAdapterprivate boolean matchCall(int opcode)