Native: remove code duplication in coroutine intrinsics implementation
Make `createCoroutineUnintercepted` invoke `startCoroutineUninterceptedOrReturn` when suspend function object is not a `BaseContinuationImpl` (e.g. for a custom suspend function type subclass), instead of using the copy of its implementation.
This commit is contained in:
committed by
Space
parent
e64b057131
commit
15fe2c2c5c
+2
-2
@@ -88,7 +88,7 @@ public actual fun <T> (suspend () -> T).createCoroutineUnintercepted(
|
||||
create(probeCompletion)
|
||||
else
|
||||
createCoroutineFromSuspendFunction(probeCompletion) {
|
||||
(this as Function1<Continuation<T>, Any?>).invoke(it)
|
||||
this.startCoroutineUninterceptedOrReturn(it)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ public actual fun <R, T> (suspend R.() -> T).createCoroutineUnintercepted(
|
||||
create(receiver, probeCompletion)
|
||||
else {
|
||||
createCoroutineFromSuspendFunction(probeCompletion) {
|
||||
(this as Function2<R, Continuation<T>, Any?>).invoke(receiver, it)
|
||||
this.startCoroutineUninterceptedOrReturn(receiver, it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user