public class InvokeDynamicClassInstrumentor extends ClassInstrumentor
ClassInstrumentor.Decorator| Constructor and Description |
|---|
InvokeDynamicClassInstrumentor(ClassInstrumentor.Decorator decorator) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addDirectCallConstructor(MutableClass mutableClass) |
protected void |
generateClassHandlerCall(MutableClass mutableClass,
org.objectweb.asm.tree.MethodNode originalMethod,
String originalMethodName,
RobolectricGeneratorAdapter generator) |
protected void |
interceptInvokeVirtualMethod(MutableClass mutableClass,
ListIterator<org.objectweb.asm.tree.AbstractInsnNode> instructions,
org.objectweb.asm.tree.MethodInsnNode targetMethod)
Decides to call through the appropriate method to intercept the method with an INVOKEVIRTUAL Opcode, depending if the invokedynamic bytecode instruction is available (Java 7+).
|
protected void |
writeCallToInitializing(MutableClass mutableClass,
RobolectricGeneratorAdapter generator) |
analyzeClass, exceptionArray, instrument, instrument, instrumentNativeMethod, instrumentNormalMethod, makeMethodPrivate, makeMethodPublicpublic InvokeDynamicClassInstrumentor(ClassInstrumentor.Decorator decorator)
protected void addDirectCallConstructor(MutableClass mutableClass)
addDirectCallConstructor in class ClassInstrumentorprotected void writeCallToInitializing(MutableClass mutableClass, RobolectricGeneratorAdapter generator)
writeCallToInitializing in class ClassInstrumentorprotected void generateClassHandlerCall(MutableClass mutableClass, org.objectweb.asm.tree.MethodNode originalMethod, String originalMethodName, RobolectricGeneratorAdapter generator)
generateClassHandlerCall in class ClassInstrumentorprotected void interceptInvokeVirtualMethod(MutableClass mutableClass, ListIterator<org.objectweb.asm.tree.AbstractInsnNode> instructions, org.objectweb.asm.tree.MethodInsnNode targetMethod)
ClassInstrumentorDecides to call through the appropriate method to intercept the method with an INVOKEVIRTUAL Opcode, depending if the invokedynamic bytecode instruction is available (Java 7+).
interceptInvokeVirtualMethod in class ClassInstrumentor