Class MethodAnalyzer
java.lang.Object
com.offbynull.coroutines.instrumenter.MethodAnalyzer
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ClassInformationRepositoryprivate static final org.objectweb.asm.Typeprivate static final Method -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate CacheVariablesallocateCacheVariableSlots(VariableTable varTable, MethodAnalyzer.TypeTracker invocationReturnTypes, boolean invocationFoundWrappedInTryCatch) private LockVariablesallocateLockVariableSlots(VariableTable varTable, boolean containsSyncPoints) private StorageContainerVariablesprivate StorageVariablesallocateStorageVariableSlots(VariableTable varTable, MethodAnalyzer.TypeTracker storageTypes) analyze(org.objectweb.asm.tree.ClassNode classNode, org.objectweb.asm.tree.MethodNode methodNode, InstrumentationSettings settings) private intgetLocalVariableIndexOfContinuationParameter(org.objectweb.asm.tree.MethodNode methodNode) private voidvalidateNoInvokeDynamic(List<org.objectweb.asm.tree.AbstractInsnNode> insnNodes)
-
Field Details
-
CONTINUATION_CLASS_TYPE
private static final org.objectweb.asm.Type CONTINUATION_CLASS_TYPE -
CONTINUATION_SUSPEND_METHOD
-
classInfoRepo
-
-
Constructor Details
-
MethodAnalyzer
MethodAnalyzer(ClassInformationRepository classInfoRepo)
-
-
Method Details
-
analyze
public MethodAttributes analyze(org.objectweb.asm.tree.ClassNode classNode, org.objectweb.asm.tree.MethodNode methodNode, InstrumentationSettings settings) -
getLocalVariableIndexOfContinuationParameter
private int getLocalVariableIndexOfContinuationParameter(org.objectweb.asm.tree.MethodNode methodNode) -
allocateCacheVariableSlots
private CacheVariables allocateCacheVariableSlots(VariableTable varTable, MethodAnalyzer.TypeTracker invocationReturnTypes, boolean invocationFoundWrappedInTryCatch) -
allocateStorageVariableSlots
private StorageVariables allocateStorageVariableSlots(VariableTable varTable, MethodAnalyzer.TypeTracker storageTypes) -
allocateStorageContainerVariableSlots
-
allocateLockVariableSlots
-
validateNoInvokeDynamic
-