protected static class MemberSubstitution.SubstitutingMethodVisitor extends LocalVariableAwareMethodVisitor
Modifier and Type | Class and Description |
---|---|
private class |
MemberSubstitution.SubstitutingMethodVisitor.LocalVariableTracingMethodVisitor
A method visitor that traces offsets of the local variable array being used.
|
Modifier and Type | Field and Description |
---|---|
private Implementation.Context |
implementationContext
The implementation context to use.
|
private MethodDescription |
instrumentedMethod
The instrumented method.
|
private TypeDescription |
instrumentedType
The instrumented type.
|
private int |
localVariableExtension
The minimum amount of local variable array slots that are required to apply substitutions.
|
private MethodGraph.Compiler |
methodGraphCompiler
The method graph compiler to use.
|
private MemberSubstitution.Replacement |
replacement
The replacement to use for creating substitutions.
|
private int |
stackSizeBuffer
An additional buffer for the operand stack that is required.
|
private boolean |
strict
true if the method processing should be strict where an exception is raised if a member cannot be found. |
private TypePool |
typePool
The type pool to use.
|
private boolean |
virtualPrivateCalls
If
true , virtual method calls might target private methods in accordance to the nest mate specification. |
Modifier | Constructor and Description |
---|---|
protected |
SubstitutingMethodVisitor(org.objectweb.asm.MethodVisitor methodVisitor,
TypeDescription instrumentedType,
MethodDescription instrumentedMethod,
MethodGraph.Compiler methodGraphCompiler,
boolean strict,
MemberSubstitution.Replacement replacement,
Implementation.Context implementationContext,
TypePool typePool,
boolean virtualPrivateCalls)
Creates a new substituting method visitor.
|
Modifier and Type | Method and Description |
---|---|
void |
visitFieldInsn(int opcode,
java.lang.String owner,
java.lang.String internalName,
java.lang.String descriptor) |
void |
visitMaxs(int stackSize,
int localVariableLength) |
void |
visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String internalName,
java.lang.String descriptor,
boolean isInterface) |
getFreeOffset, visitVarInsn
visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFrame, visitIincInsn, visitInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitLookupSwitchInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation, visitTypeInsn
private final TypeDescription instrumentedType
private final MethodDescription instrumentedMethod
private final MethodGraph.Compiler methodGraphCompiler
private final boolean strict
true
if the method processing should be strict where an exception is raised if a member cannot be found.private final MemberSubstitution.Replacement replacement
private final Implementation.Context implementationContext
private final TypePool typePool
private final boolean virtualPrivateCalls
true
, virtual method calls might target private methods in accordance to the nest mate specification.private int stackSizeBuffer
private int localVariableExtension
protected SubstitutingMethodVisitor(org.objectweb.asm.MethodVisitor methodVisitor, TypeDescription instrumentedType, MethodDescription instrumentedMethod, MethodGraph.Compiler methodGraphCompiler, boolean strict, MemberSubstitution.Replacement replacement, Implementation.Context implementationContext, TypePool typePool, boolean virtualPrivateCalls)
methodVisitor
- The method visitor to delegate to.instrumentedType
- The instrumented type.instrumentedMethod
- The instrumented method.methodGraphCompiler
- The method graph compiler to use.strict
- true
if the method processing should be strict where an exception is raised if a member cannot be found.replacement
- The replacement to use for creating substitutions.implementationContext
- The implementation context to use.typePool
- The type pool to use.virtualPrivateCalls
- true
, virtual method calls might target private methods in accordance to the nest mate specification.public void visitFieldInsn(int opcode, java.lang.String owner, java.lang.String internalName, java.lang.String descriptor)
visitFieldInsn
in class org.objectweb.asm.MethodVisitor
public void visitMethodInsn(int opcode, java.lang.String owner, java.lang.String internalName, java.lang.String descriptor, boolean isInterface)
visitMethodInsn
in class org.objectweb.asm.MethodVisitor
public void visitMaxs(int stackSize, int localVariableLength)
visitMaxs
in class org.objectweb.asm.MethodVisitor