Minor. Extract method
This commit is contained in:
@@ -2853,16 +2853,8 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
|||||||
@NotNull ArgumentGenerator argumentGenerator
|
@NotNull ArgumentGenerator argumentGenerator
|
||||||
) {
|
) {
|
||||||
boolean isSuspensionPoint = CoroutineCodegenUtilKt.isSuspensionPointInStateMachine(resolvedCall, bindingContext);
|
boolean isSuspensionPoint = CoroutineCodegenUtilKt.isSuspensionPointInStateMachine(resolvedCall, bindingContext);
|
||||||
if (isSuspensionPoint) {
|
|
||||||
// Inline markers are used to spill the stack before coroutine suspension
|
|
||||||
addInlineMarker(v, true);
|
|
||||||
}
|
|
||||||
boolean isConstructor = resolvedCall.getResultingDescriptor() instanceof ConstructorDescriptor;
|
boolean isConstructor = resolvedCall.getResultingDescriptor() instanceof ConstructorDescriptor;
|
||||||
if (!isConstructor) { // otherwise already
|
putReceiverAndInlineMarkerIfNeeded(callableMethod, resolvedCall, receiver, isSuspensionPoint, isConstructor);
|
||||||
receiver = StackValue.receiver(resolvedCall, receiver, this, callableMethod);
|
|
||||||
receiver.put(receiver.type, v);
|
|
||||||
callableMethod.afterReceiverGeneration(v);
|
|
||||||
}
|
|
||||||
|
|
||||||
callGenerator.processAndPutHiddenParameters(false);
|
callGenerator.processAndPutHiddenParameters(false);
|
||||||
|
|
||||||
@@ -2913,6 +2905,25 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void putReceiverAndInlineMarkerIfNeeded(
|
||||||
|
@NotNull Callable callableMethod,
|
||||||
|
@NotNull ResolvedCall<?> resolvedCall,
|
||||||
|
@NotNull StackValue receiver,
|
||||||
|
boolean isSuspensionPoint,
|
||||||
|
boolean isConstructor
|
||||||
|
) {
|
||||||
|
if (isSuspensionPoint) {
|
||||||
|
// Inline markers are used to spill the stack before coroutine suspension
|
||||||
|
addInlineMarker(v, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isConstructor) { // otherwise already
|
||||||
|
receiver = StackValue.receiver(resolvedCall, receiver, this, callableMethod);
|
||||||
|
receiver.put(receiver.type, v);
|
||||||
|
callableMethod.afterReceiverGeneration(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private CallGenerator getOrCreateCallGenerator(
|
private CallGenerator getOrCreateCallGenerator(
|
||||||
@NotNull CallableDescriptor descriptor,
|
@NotNull CallableDescriptor descriptor,
|
||||||
|
|||||||
Reference in New Issue
Block a user