Class InvokeDynamicClassInstrumentor
java.lang.Object
org.robolectric.internal.bytecode.ClassInstrumentor
org.robolectric.internal.bytecode.InvokeDynamicClassInstrumentor
public class InvokeDynamicClassInstrumentor extends ClassInstrumentor
-
Nested Class Summary
Nested classes/interfaces inherited from class org.robolectric.internal.bytecode.ClassInstrumentor
ClassInstrumentor.Decorator -
Constructor Summary
Constructors Constructor Description InvokeDynamicClassInstrumentor(ClassInstrumentor.Decorator decorator) -
Method Summary
Modifier and Type Method Description protected voidaddDirectCallConstructor(MutableClass mutableClass)protected voidgenerateClassHandlerCall(MutableClass mutableClass, org.objectweb.asm.tree.MethodNode originalMethod, String originalMethodName, RobolectricGeneratorAdapter generator)protected voidinterceptInvokeVirtualMethod(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 voidwriteCallToInitializing(MutableClass mutableClass, RobolectricGeneratorAdapter generator)Methods inherited from class org.robolectric.internal.bytecode.ClassInstrumentor
directMethodName, exceptionArray, instrument, instrument, instrumentNativeMethod, instrumentNormalMethod, makeMethodPrivate, makeMethodPublic
-
Constructor Details
-
Method Details
-
addDirectCallConstructor
- Specified by:
addDirectCallConstructorin classClassInstrumentor
-
writeCallToInitializing
protected void writeCallToInitializing(MutableClass mutableClass, RobolectricGeneratorAdapter generator)- Specified by:
writeCallToInitializingin classClassInstrumentor
-
generateClassHandlerCall
protected void generateClassHandlerCall(MutableClass mutableClass, org.objectweb.asm.tree.MethodNode originalMethod, String originalMethodName, RobolectricGeneratorAdapter generator)- Specified by:
generateClassHandlerCallin classClassInstrumentor
-
interceptInvokeVirtualMethod
protected void interceptInvokeVirtualMethod(MutableClass mutableClass, ListIterator<org.objectweb.asm.tree.AbstractInsnNode> instructions, org.objectweb.asm.tree.MethodInsnNode targetMethod)Description copied from class: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+).- Specified by:
interceptInvokeVirtualMethodin classClassInstrumentor
-