Class MethodAnalyzer
java.lang.Object
com.offbynull.coroutines.instrumenter.MethodAnalyzer
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ClassInformationRepository
private static final org.objectweb.asm.Type
private static final Method
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate CacheVariables
allocateCacheVariableSlots
(VariableTable varTable, MethodAnalyzer.TypeTracker invocationReturnTypes, boolean invocationFoundWrappedInTryCatch) private LockVariables
allocateLockVariableSlots
(VariableTable varTable, boolean containsSyncPoints) private StorageContainerVariables
private StorageVariables
allocateStorageVariableSlots
(VariableTable varTable, MethodAnalyzer.TypeTracker storageTypes) analyze
(org.objectweb.asm.tree.ClassNode classNode, org.objectweb.asm.tree.MethodNode methodNode, InstrumentationSettings settings) private int
getLocalVariableIndexOfContinuationParameter
(org.objectweb.asm.tree.MethodNode methodNode) private void
validateNoInvokeDynamic
(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
-