126 lines
3.4 KiB
Smali
126 lines
3.4 KiB
Smali
.class public abstract Lkotlinx/coroutines/YieldKt;
|
|
.super Ljava/lang/Object;
|
|
.source "SourceFile"
|
|
|
|
|
|
# direct methods
|
|
.method public static final yield(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
|
.locals 4
|
|
|
|
.line 31
|
|
invoke-interface {p0}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
|
|
|
|
move-result-object v0
|
|
|
|
.line 32
|
|
invoke-static {v0}, Lkotlinx/coroutines/JobKt;->ensureActive(Lkotlin/coroutines/CoroutineContext;)V
|
|
|
|
.line 33
|
|
invoke-static {p0}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->intercepted(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
|
|
|
|
move-result-object v1
|
|
|
|
instance-of v2, v1, Lkotlinx/coroutines/internal/DispatchedContinuation;
|
|
|
|
if-eqz v2, :cond_0
|
|
|
|
check-cast v1, Lkotlinx/coroutines/internal/DispatchedContinuation;
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v1, 0x0
|
|
|
|
:goto_0
|
|
if-nez v1, :cond_1
|
|
|
|
sget-object v0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
|
|
|
|
goto :goto_2
|
|
|
|
.line 34
|
|
:cond_1
|
|
iget-object v2, v1, Lkotlinx/coroutines/internal/DispatchedContinuation;->dispatcher:Lkotlinx/coroutines/CoroutineDispatcher;
|
|
|
|
invoke-virtual {v2, v0}, Lkotlinx/coroutines/CoroutineDispatcher;->isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_2
|
|
|
|
.line 36
|
|
sget-object v2, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
|
|
|
|
invoke-virtual {v1, v0, v2}, Lkotlinx/coroutines/internal/DispatchedContinuation;->dispatchYield$kotlinx_coroutines_core(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 40
|
|
:cond_2
|
|
new-instance v2, Lkotlinx/coroutines/YieldContext;
|
|
|
|
invoke-direct {v2}, Lkotlinx/coroutines/YieldContext;-><init>()V
|
|
|
|
.line 41
|
|
invoke-interface {v0, v2}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
|
|
|
|
move-result-object v0
|
|
|
|
sget-object v3, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
|
|
|
|
invoke-virtual {v1, v0, v3}, Lkotlinx/coroutines/internal/DispatchedContinuation;->dispatchYield$kotlinx_coroutines_core(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
|
|
|
|
iget-boolean v0, v2, Lkotlinx/coroutines/YieldContext;->dispatcherWasUnconfined:Z
|
|
|
|
if-eqz v0, :cond_4
|
|
|
|
.line 46
|
|
invoke-static {v1}, Lkotlinx/coroutines/internal/DispatchedContinuationKt;->yieldUndispatched(Lkotlinx/coroutines/internal/DispatchedContinuation;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_3
|
|
|
|
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
goto :goto_2
|
|
|
|
:cond_3
|
|
move-object v0, v3
|
|
|
|
goto :goto_2
|
|
|
|
.line 50
|
|
:cond_4
|
|
:goto_1
|
|
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
.line 30
|
|
:goto_2
|
|
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
|
|
|
|
move-result-object v1
|
|
|
|
if-ne v0, v1, :cond_5
|
|
|
|
invoke-static {p0}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V
|
|
|
|
:cond_5
|
|
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
|
|
|
|
move-result-object p0
|
|
|
|
if-ne v0, p0, :cond_6
|
|
|
|
return-object v0
|
|
|
|
:cond_6
|
|
sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
|
|
|
|
return-object p0
|
|
.end method
|