Add Discord APKTool decompilation (Smali source for modding)

- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
This commit is contained in:
2026-02-18 16:13:44 -08:00
parent c080f0d97f
commit f3960ee359
44288 changed files with 10998761 additions and 0 deletions

View File

@@ -0,0 +1,245 @@
.class public abstract Lkotlinx/coroutines/AbstractCoroutine;
.super Lkotlinx/coroutines/JobSupport;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Job;
.implements Lkotlin/coroutines/Continuation;
.implements Lkotlinx/coroutines/CoroutineScope;
# instance fields
.field public final context:Lkotlin/coroutines/CoroutineContext;
# direct methods
.method public constructor <init>(Lkotlin/coroutines/CoroutineContext;ZZ)V
.locals 0
.line 41
invoke-direct {p0, p3}, Lkotlinx/coroutines/JobSupport;-><init>(Z)V
if-eqz p2, :cond_0
sget-object p2, Lkotlinx/coroutines/Job;->Key:Lkotlinx/coroutines/Job$Key;
.line 51
invoke-interface {p1, p2}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object p2
check-cast p2, Lkotlinx/coroutines/Job;
invoke-virtual {p0, p2}, Lkotlinx/coroutines/JobSupport;->initParentJob(Lkotlinx/coroutines/Job;)V
.line 58
:cond_0
invoke-interface {p1, p0}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p1
iput-object p1, p0, Lkotlinx/coroutines/AbstractCoroutine;->context:Lkotlin/coroutines/CoroutineContext;
return-void
.end method
# virtual methods
.method public afterResume(Ljava/lang/Object;)V
.locals 0
.line 105
invoke-virtual {p0, p1}, Lkotlinx/coroutines/JobSupport;->afterCompletion(Ljava/lang/Object;)V
return-void
.end method
.method public cancellationExceptionMessage()Ljava/lang/String;
.locals 2
.line 86
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {p0}, Lkotlinx/coroutines/DebugStringsKt;->getClassSimpleName(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, " was cancelled"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public final getContext()Lkotlin/coroutines/CoroutineContext;
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/AbstractCoroutine;->context:Lkotlin/coroutines/CoroutineContext;
return-object v0
.end method
.method public getCoroutineContext()Lkotlin/coroutines/CoroutineContext;
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/AbstractCoroutine;->context:Lkotlin/coroutines/CoroutineContext;
return-object v0
.end method
.method public final handleOnCompletionException$kotlinx_coroutines_core(Ljava/lang/Throwable;)V
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/AbstractCoroutine;->context:Lkotlin/coroutines/CoroutineContext;
.line 108
invoke-static {v0, p1}, Lkotlinx/coroutines/CoroutineExceptionHandlerKt;->handleCoroutineException(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V
return-void
.end method
.method public isActive()Z
.locals 1
.line 65
invoke-super {p0}, Lkotlinx/coroutines/JobSupport;->isActive()Z
move-result v0
return v0
.end method
.method public nameString$kotlinx_coroutines_core()Ljava/lang/String;
.locals 3
iget-object v0, p0, Lkotlinx/coroutines/AbstractCoroutine;->context:Lkotlin/coroutines/CoroutineContext;
.line 112
invoke-static {v0}, Lkotlinx/coroutines/CoroutineContextKt;->getCoroutineName(Lkotlin/coroutines/CoroutineContext;)Ljava/lang/String;
move-result-object v0
if-nez v0, :cond_0
invoke-super {p0}, Lkotlinx/coroutines/JobSupport;->nameString$kotlinx_coroutines_core()Ljava/lang/String;
move-result-object v0
return-object v0
.line 113
:cond_0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const/16 v2, 0x22
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, "\":"
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-super {p0}, Lkotlinx/coroutines/JobSupport;->nameString$kotlinx_coroutines_core()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public onCancelled(Ljava/lang/Throwable;Z)V
.locals 0
return-void
.end method
.method public onCompleted(Ljava/lang/Object;)V
.locals 0
return-void
.end method
.method public final onCompletionInternal(Ljava/lang/Object;)V
.locals 1
.line 90
instance-of v0, p1, Lkotlinx/coroutines/CompletedExceptionally;
if-eqz v0, :cond_0
.line 91
check-cast p1, Lkotlinx/coroutines/CompletedExceptionally;
iget-object v0, p1, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable;
invoke-virtual {p1}, Lkotlinx/coroutines/CompletedExceptionally;->getHandled()Z
move-result p1
invoke-virtual {p0, v0, p1}, Lkotlinx/coroutines/AbstractCoroutine;->onCancelled(Ljava/lang/Throwable;Z)V
goto :goto_0
.line 93
:cond_0
invoke-virtual {p0, p1}, Lkotlinx/coroutines/AbstractCoroutine;->onCompleted(Ljava/lang/Object;)V
:goto_0
return-void
.end method
.method public final resumeWith(Ljava/lang/Object;)V
.locals 2
const/4 v0, 0x0
const/4 v1, 0x1
.line 100
invoke-static {p1, v0, v1, v0}, Lkotlinx/coroutines/CompletionStateKt;->toState$default(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Object;
move-result-object p1
invoke-virtual {p0, p1}, Lkotlinx/coroutines/JobSupport;->makeCompletingOnce$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
.line 101
sget-object v0, Lkotlinx/coroutines/JobSupportKt;->COMPLETING_WAITING_CHILDREN:Lkotlinx/coroutines/internal/Symbol;
if-ne p1, v0, :cond_0
return-void
.line 102
:cond_0
invoke-virtual {p0, p1}, Lkotlinx/coroutines/AbstractCoroutine;->afterResume(Ljava/lang/Object;)V
return-void
.end method
.method public final start(Lkotlinx/coroutines/CoroutineStart;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V
.locals 0
.line 126
invoke-virtual {p1, p3, p2, p0}, Lkotlinx/coroutines/CoroutineStart;->invoke(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V
return-void
.end method

View File

@@ -0,0 +1,3 @@
.class public abstract Lkotlinx/coroutines/AbstractTimeSource;
.super Ljava/lang/Object;
.source "SourceFile"

View File

@@ -0,0 +1,19 @@
.class public abstract Lkotlinx/coroutines/AbstractTimeSourceKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method static constructor <clinit>()V
.locals 0
return-void
.end method
.method public static final getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
.locals 1
const/4 v0, 0x0
return-object v0
.end method

View File

@@ -0,0 +1,43 @@
.class public final Lkotlinx/coroutines/Active;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/NotCompleted;
# static fields
.field public static final INSTANCE:Lkotlinx/coroutines/Active;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/Active;
invoke-direct {v0}, Lkotlinx/coroutines/Active;-><init>()V
sput-object v0, Lkotlinx/coroutines/Active;->INSTANCE:Lkotlinx/coroutines/Active;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 627
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 1
const-string v0, "Active"
return-object v0
.end method

View File

@@ -0,0 +1,225 @@
.class public final Lkotlinx/coroutines/AwaitAll$AwaitAllNode;
.super Lkotlinx/coroutines/JobNode;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/AwaitAll;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "AwaitAllNode"
.end annotation
# static fields
.field public static final _disposer$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
# instance fields
.field private volatile _disposer:Ljava/lang/Object;
.field public final continuation:Lkotlinx/coroutines/CancellableContinuation;
.field public handle:Lkotlinx/coroutines/DisposableHandle;
.field public final synthetic this$0:Lkotlinx/coroutines/AwaitAll;
# direct methods
.method static constructor <clinit>()V
.locals 3
const-class v0, Ljava/lang/Object;
const-string v1, "_disposer"
const-class v2, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;
invoke-static {v2, v0, v1}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
move-result-object v0
sput-object v0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->_disposer$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
return-void
.end method
.method public constructor <init>(Lkotlinx/coroutines/AwaitAll;Lkotlinx/coroutines/CancellableContinuation;)V
.locals 0
iput-object p1, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->this$0:Lkotlinx/coroutines/AwaitAll;
.line 103
invoke-direct {p0}, Lkotlinx/coroutines/JobNode;-><init>()V
iput-object p2, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->continuation:Lkotlinx/coroutines/CancellableContinuation;
return-void
.end method
# virtual methods
.method public final getDisposer()Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;
.locals 1
sget-object v0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->_disposer$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
.line 108
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;
return-object v0
.end method
.method public final getHandle()Lkotlinx/coroutines/DisposableHandle;
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->handle:Lkotlinx/coroutines/DisposableHandle;
if-eqz v0, :cond_0
return-object v0
:cond_0
const-string v0, "handle"
.line 104
invoke-static {v0}, Lkotlin/jvm/internal/Intrinsics;->throwUninitializedPropertyAccessException(Ljava/lang/String;)V
const/4 v0, 0x0
return-object v0
.end method
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 103
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 5
if-eqz p1, :cond_0
iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->continuation:Lkotlinx/coroutines/CancellableContinuation;
.line 113
invoke-interface {v0, p1}, Lkotlinx/coroutines/CancellableContinuation;->tryResumeWithException(Ljava/lang/Throwable;)Ljava/lang/Object;
move-result-object p1
if-eqz p1, :cond_2
iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->continuation:Lkotlinx/coroutines/CancellableContinuation;
.line 115
invoke-interface {v0, p1}, Lkotlinx/coroutines/CancellableContinuation;->completeResume(Ljava/lang/Object;)V
.line 118
invoke-virtual {p0}, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->getDisposer()Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;
move-result-object p1
if-eqz p1, :cond_2
invoke-virtual {p1}, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->disposeAll()V
goto :goto_1
:cond_0
invoke-static {}, Lkotlinx/coroutines/AwaitAll;->access$getNotCompletedCount$FU$p()Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
move-result-object p1
iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->this$0:Lkotlinx/coroutines/AwaitAll;
.line 120
invoke-virtual {p1, v0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->decrementAndGet(Ljava/lang/Object;)I
move-result p1
if-nez p1, :cond_2
iget-object p1, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->continuation:Lkotlinx/coroutines/CancellableContinuation;
iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->this$0:Lkotlinx/coroutines/AwaitAll;
.line 121
invoke-static {v0}, Lkotlinx/coroutines/AwaitAll;->access$getDeferreds$p(Lkotlinx/coroutines/AwaitAll;)[Lkotlinx/coroutines/Deferred;
move-result-object v0
.line 128
new-instance v1, Ljava/util/ArrayList;
array-length v2, v0
invoke-direct {v1, v2}, Ljava/util/ArrayList;-><init>(I)V
.line 11670
array-length v2, v0
const/4 v3, 0x0
:goto_0
if-ge v3, v2, :cond_1
aget-object v4, v0, v3
.line 121
invoke-interface {v4}, Lkotlinx/coroutines/Deferred;->getCompleted()Ljava/lang/Object;
move-result-object v4
.line 11671
invoke-interface {v1, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
add-int/lit8 v3, v3, 0x1
goto :goto_0
.line 121
:cond_1
invoke-static {v1}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
invoke-interface {p1, v0}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V
:cond_2
:goto_1
return-void
.end method
.method public final setDisposer(Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;)V
.locals 1
sget-object v0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->_disposer$FU:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
.line 109
invoke-virtual {v0, p0, p1}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->set(Ljava/lang/Object;Ljava/lang/Object;)V
return-void
.end method
.method public final setHandle(Lkotlinx/coroutines/DisposableHandle;)V
.locals 0
iput-object p1, p0, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->handle:Lkotlinx/coroutines/DisposableHandle;
return-void
.end method

View File

@@ -0,0 +1,116 @@
.class public final Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;
.super Lkotlinx/coroutines/CancelHandler;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/AwaitAll;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "DisposeHandlersOnCancel"
.end annotation
# instance fields
.field public final nodes:[Lkotlinx/coroutines/AwaitAll$AwaitAllNode;
.field public final synthetic this$0:Lkotlinx/coroutines/AwaitAll;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/AwaitAll;[Lkotlinx/coroutines/AwaitAll$AwaitAllNode;)V
.locals 0
iput-object p1, p0, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->this$0:Lkotlinx/coroutines/AwaitAll;
.line 94
invoke-direct {p0}, Lkotlinx/coroutines/CancelHandler;-><init>()V
iput-object p2, p0, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->nodes:[Lkotlinx/coroutines/AwaitAll$AwaitAllNode;
return-void
.end method
# virtual methods
.method public final disposeAll()V
.locals 4
iget-object v0, p0, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->nodes:[Lkotlinx/coroutines/AwaitAll$AwaitAllNode;
.line 13579
array-length v1, v0
const/4 v2, 0x0
:goto_0
if-ge v2, v1, :cond_0
aget-object v3, v0, v2
.line 96
invoke-virtual {v3}, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->getHandle()Lkotlinx/coroutines/DisposableHandle;
move-result-object v3
invoke-interface {v3}, Lkotlinx/coroutines/DisposableHandle;->dispose()V
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_0
return-void
.end method
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 94
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 0
.line 99
invoke-virtual {p0}, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->disposeAll()V
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 100
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "DisposeHandlersOnCancel["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->nodes:[Lkotlinx/coroutines/AwaitAll$AwaitAllNode;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v1, 0x5d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,195 @@
.class public final Lkotlinx/coroutines/AwaitAll;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/AwaitAll$AwaitAllNode;,
Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;
}
.end annotation
# static fields
.field public static final notCompletedCount$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
# instance fields
.field public final deferreds:[Lkotlinx/coroutines/Deferred;
.field private volatile notCompletedCount:I
# direct methods
.method static constructor <clinit>()V
.locals 2
const-class v0, Lkotlinx/coroutines/AwaitAll;
const-string v1, "notCompletedCount"
invoke-static {v0, v1}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
move-result-object v0
sput-object v0, Lkotlinx/coroutines/AwaitAll;->notCompletedCount$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return-void
.end method
.method public constructor <init>([Lkotlinx/coroutines/Deferred;)V
.locals 0
.line 68
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/AwaitAll;->deferreds:[Lkotlinx/coroutines/Deferred;
.line 69
array-length p1, p1
iput p1, p0, Lkotlinx/coroutines/AwaitAll;->notCompletedCount:I
return-void
.end method
.method public static final synthetic access$getDeferreds$p(Lkotlinx/coroutines/AwaitAll;)[Lkotlinx/coroutines/Deferred;
.locals 0
.line 68
iget-object p0, p0, Lkotlinx/coroutines/AwaitAll;->deferreds:[Lkotlinx/coroutines/Deferred;
return-object p0
.end method
.method public static final synthetic access$getNotCompletedCount$FU$p()Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
.locals 1
sget-object v0, Lkotlinx/coroutines/AwaitAll;->notCompletedCount$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return-object v0
.end method
# virtual methods
.method public final await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 7
.line 315
new-instance v0, Lkotlinx/coroutines/CancellableContinuationImpl;
invoke-static {p1}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->intercepted(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
move-result-object v1
const/4 v2, 0x1
invoke-direct {v0, v1, v2}, Lkotlinx/coroutines/CancellableContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;I)V
.line 321
invoke-virtual {v0}, Lkotlinx/coroutines/CancellableContinuationImpl;->initCancellability()V
.line 74
invoke-static {p0}, Lkotlinx/coroutines/AwaitAll;->access$getDeferreds$p(Lkotlinx/coroutines/AwaitAll;)[Lkotlinx/coroutines/Deferred;
move-result-object v1
array-length v1, v1
new-array v2, v1, [Lkotlinx/coroutines/AwaitAll$AwaitAllNode;
const/4 v3, 0x0
move v4, v3
:goto_0
if-ge v4, v1, :cond_0
.line 75
invoke-static {p0}, Lkotlinx/coroutines/AwaitAll;->access$getDeferreds$p(Lkotlinx/coroutines/AwaitAll;)[Lkotlinx/coroutines/Deferred;
move-result-object v5
aget-object v5, v5, v4
.line 76
invoke-interface {v5}, Lkotlinx/coroutines/Job;->start()Z
.line 77
new-instance v6, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;
invoke-direct {v6, p0, v0}, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;-><init>(Lkotlinx/coroutines/AwaitAll;Lkotlinx/coroutines/CancellableContinuation;)V
.line 78
invoke-interface {v5, v6}, Lkotlinx/coroutines/Job;->invokeOnCompletion(Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/DisposableHandle;
move-result-object v5
invoke-virtual {v6, v5}, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->setHandle(Lkotlinx/coroutines/DisposableHandle;)V
.line 79
sget-object v5, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
.line 77
aput-object v6, v2, v4
add-int/lit8 v4, v4, 0x1
goto :goto_0
.line 81
:cond_0
new-instance v4, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;
invoke-direct {v4, p0, v2}, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;-><init>(Lkotlinx/coroutines/AwaitAll;[Lkotlinx/coroutines/AwaitAll$AwaitAllNode;)V
:goto_1
if-ge v3, v1, :cond_1
.line 13579
aget-object v5, v2, v3
.line 83
invoke-virtual {v5, v4}, Lkotlinx/coroutines/AwaitAll$AwaitAllNode;->setDisposer(Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;)V
add-int/lit8 v3, v3, 0x1
goto :goto_1
.line 86
:cond_1
invoke-interface {v0}, Lkotlinx/coroutines/CancellableContinuation;->isCompleted()Z
move-result v1
if-eqz v1, :cond_2
.line 88
invoke-virtual {v4}, Lkotlinx/coroutines/AwaitAll$DisposeHandlersOnCancel;->disposeAll()V
goto :goto_2
.line 90
:cond_2
invoke-interface {v0, v4}, Lkotlinx/coroutines/CancellableContinuation;->invokeOnCancellation(Lkotlin/jvm/functions/Function1;)V
.line 323
:goto_2
invoke-virtual {v0}, Lkotlinx/coroutines/CancellableContinuationImpl;->getResult()Ljava/lang/Object;
move-result-object v0
.line 314
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
move-result-object v1
if-ne v0, v1, :cond_3
invoke-static {p1}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V
:cond_3
return-object v0
.end method

View File

@@ -0,0 +1,31 @@
.class public abstract Lkotlinx/coroutines/AwaitKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final awaitAll([Lkotlinx/coroutines/Deferred;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 1
.line 25
array-length v0, p0
if-nez v0, :cond_0
invoke-static {}, Lkotlin/collections/CollectionsKt;->emptyList()Ljava/util/List;
move-result-object p0
return-object p0
:cond_0
new-instance v0, Lkotlinx/coroutines/AwaitAll;
invoke-direct {v0, p0}, Lkotlinx/coroutines/AwaitAll;-><init>([Lkotlinx/coroutines/Deferred;)V
invoke-virtual {v0, p1}, Lkotlinx/coroutines/AwaitAll;->await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method

View File

@@ -0,0 +1,215 @@
.class public final Lkotlinx/coroutines/BlockingCoroutine;
.super Lkotlinx/coroutines/AbstractCoroutine;
.source "SourceFile"
# instance fields
.field public final blockedThread:Ljava/lang/Thread;
.field public final eventLoop:Lkotlinx/coroutines/EventLoop;
# direct methods
.method public constructor <init>(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Thread;Lkotlinx/coroutines/EventLoop;)V
.locals 1
const/4 v0, 0x1
.line 66
invoke-direct {p0, p1, v0, v0}, Lkotlinx/coroutines/AbstractCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;ZZ)V
iput-object p2, p0, Lkotlinx/coroutines/BlockingCoroutine;->blockedThread:Ljava/lang/Thread;
iput-object p3, p0, Lkotlinx/coroutines/BlockingCoroutine;->eventLoop:Lkotlinx/coroutines/EventLoop;
return-void
.end method
# virtual methods
.method public afterCompletion(Ljava/lang/Object;)V
.locals 1
.line 72
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object p1
iget-object v0, p0, Lkotlinx/coroutines/BlockingCoroutine;->blockedThread:Ljava/lang/Thread;
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_0
iget-object p1, p0, Lkotlinx/coroutines/BlockingCoroutine;->blockedThread:Ljava/lang/Thread;
.line 73
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
invoke-static {p1}, Ljava/util/concurrent/locks/LockSupport;->unpark(Ljava/lang/Thread;)V
:cond_0
return-void
.end method
.method public isScopedCoroutine()Z
.locals 1
const/4 v0, 0x1
return v0
.end method
.method public final joinBlocking()Ljava/lang/Object;
.locals 6
.line 78
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
:try_start_0
iget-object v0, p0, Lkotlinx/coroutines/BlockingCoroutine;->eventLoop:Lkotlinx/coroutines/EventLoop;
const/4 v1, 0x1
const/4 v2, 0x0
const/4 v3, 0x0
if-eqz v0, :cond_0
.line 80
invoke-static {v0, v2, v1, v3}, Lkotlinx/coroutines/EventLoop;->incrementUseCount$default(Lkotlinx/coroutines/EventLoop;ZILjava/lang/Object;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v0
goto :goto_3
.line 84
:cond_0
:goto_0
:try_start_1
invoke-static {}, Ljava/lang/Thread;->interrupted()Z
move-result v0
if-nez v0, :cond_6
iget-object v0, p0, Lkotlinx/coroutines/BlockingCoroutine;->eventLoop:Lkotlinx/coroutines/EventLoop;
if-eqz v0, :cond_1
.line 85
invoke-virtual {v0}, Lkotlinx/coroutines/EventLoop;->processNextEvent()J
move-result-wide v4
goto :goto_1
:catchall_1
move-exception v0
goto :goto_2
:cond_1
const-wide v4, 0x7fffffffffffffffL
.line 87
:goto_1
invoke-virtual {p0}, Lkotlinx/coroutines/JobSupport;->isCompleted()Z
move-result v0
if-nez v0, :cond_2
.line 88
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
invoke-static {p0, v4, v5}, Ljava/util/concurrent/locks/LockSupport;->parkNanos(Ljava/lang/Object;J)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
goto :goto_0
:cond_2
:try_start_2
iget-object v0, p0, Lkotlinx/coroutines/BlockingCoroutine;->eventLoop:Lkotlinx/coroutines/EventLoop;
if-eqz v0, :cond_3
.line 91
invoke-static {v0, v2, v1, v3}, Lkotlinx/coroutines/EventLoop;->decrementUseCount$default(Lkotlinx/coroutines/EventLoop;ZILjava/lang/Object;)V
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
.line 94
:cond_3
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
.line 97
invoke-virtual {p0}, Lkotlinx/coroutines/JobSupport;->getState$kotlinx_coroutines_core()Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lkotlinx/coroutines/JobSupportKt;->unboxState(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 98
instance-of v1, v0, Lkotlinx/coroutines/CompletedExceptionally;
if-eqz v1, :cond_4
move-object v3, v0
check-cast v3, Lkotlinx/coroutines/CompletedExceptionally;
:cond_4
if-nez v3, :cond_5
return-object v0
:cond_5
iget-object v0, v3, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable;
throw v0
.line 84
:cond_6
:try_start_3
new-instance v0, Ljava/lang/InterruptedException;
invoke-direct {v0}, Ljava/lang/InterruptedException;-><init>()V
invoke-virtual {p0, v0}, Lkotlinx/coroutines/JobSupport;->cancelCoroutine(Ljava/lang/Throwable;)Z
throw v0
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
:goto_2
:try_start_4
iget-object v4, p0, Lkotlinx/coroutines/BlockingCoroutine;->eventLoop:Lkotlinx/coroutines/EventLoop;
if-eqz v4, :cond_7
.line 91
invoke-static {v4, v2, v1, v3}, Lkotlinx/coroutines/EventLoop;->decrementUseCount$default(Lkotlinx/coroutines/EventLoop;ZILjava/lang/Object;)V
:cond_7
throw v0
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_0
.line 94
:goto_3
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
throw v0
.end method

View File

@@ -0,0 +1,30 @@
.class public final Lkotlinx/coroutines/BlockingEventLoop;
.super Lkotlinx/coroutines/EventLoopImplBase;
.source "SourceFile"
# instance fields
.field public final thread:Ljava/lang/Thread;
# direct methods
.method public constructor <init>(Ljava/lang/Thread;)V
.locals 0
.line 27
invoke-direct {p0}, Lkotlinx/coroutines/EventLoopImplBase;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/BlockingEventLoop;->thread:Ljava/lang/Thread;
return-void
.end method
# virtual methods
.method public getThread()Ljava/lang/Thread;
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/BlockingEventLoop;->thread:Ljava/lang/Thread;
return-object v0
.end method

View File

@@ -0,0 +1,82 @@
.class public abstract Lkotlinx/coroutines/BuildersKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final async(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Deferred;
.locals 0
.line 1
invoke-static {p0, p1, p2, p3}, Lkotlinx/coroutines/BuildersKt__Builders_commonKt;->async(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Deferred;
move-result-object p0
return-object p0
.end method
.method public static synthetic async$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Deferred;
.locals 0
.line 1
invoke-static/range {p0 .. p5}, Lkotlinx/coroutines/BuildersKt__Builders_commonKt;->async$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Deferred;
move-result-object p0
return-object p0
.end method
.method public static final launch(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;
.locals 0
.line 1
invoke-static {p0, p1, p2, p3}, Lkotlinx/coroutines/BuildersKt__Builders_commonKt;->launch(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;
move-result-object p0
return-object p0
.end method
.method public static synthetic launch$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
.locals 0
.line 1
invoke-static/range {p0 .. p5}, Lkotlinx/coroutines/BuildersKt__Builders_commonKt;->launch$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
move-result-object p0
return-object p0
.end method
.method public static final runBlocking(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
.locals 0
.line 1
invoke-static {p0, p1}, Lkotlinx/coroutines/BuildersKt__BuildersKt;->runBlocking(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static synthetic runBlocking$default(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1
invoke-static {p0, p1, p2, p3}, Lkotlinx/coroutines/BuildersKt__BuildersKt;->runBlocking$default(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static final withContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 0
.line 1
invoke-static {p0, p1, p2}, Lkotlinx/coroutines/BuildersKt__Builders_commonKt;->withContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method

View File

@@ -0,0 +1,135 @@
.class public abstract synthetic Lkotlinx/coroutines/BuildersKt__BuildersKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final runBlocking(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
.locals 4
.line 42
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
.line 43
sget-object v1, Lkotlin/coroutines/ContinuationInterceptor;->Key:Lkotlin/coroutines/ContinuationInterceptor$Key;
invoke-interface {p0, v1}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object v1
check-cast v1, Lkotlin/coroutines/ContinuationInterceptor;
if-nez v1, :cond_0
.line 48
sget-object v1, Lkotlinx/coroutines/ThreadLocalEventLoop;->INSTANCE:Lkotlinx/coroutines/ThreadLocalEventLoop;
invoke-virtual {v1}, Lkotlinx/coroutines/ThreadLocalEventLoop;->getEventLoop$kotlinx_coroutines_core()Lkotlinx/coroutines/EventLoop;
move-result-object v1
.line 49
sget-object v2, Lkotlinx/coroutines/GlobalScope;->INSTANCE:Lkotlinx/coroutines/GlobalScope;
invoke-interface {p0, v1}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
invoke-static {v2, p0}, Lkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
goto :goto_3
.line 53
:cond_0
instance-of v2, v1, Lkotlinx/coroutines/EventLoop;
const/4 v3, 0x0
if-eqz v2, :cond_1
check-cast v1, Lkotlinx/coroutines/EventLoop;
goto :goto_0
:cond_1
move-object v1, v3
:goto_0
if-eqz v1, :cond_4
invoke-virtual {v1}, Lkotlinx/coroutines/EventLoop;->shouldBeProcessedFromContext()Z
move-result v2
if-eqz v2, :cond_2
move-object v3, v1
:cond_2
if-nez v3, :cond_3
goto :goto_1
:cond_3
move-object v1, v3
goto :goto_2
.line 54
:cond_4
:goto_1
sget-object v1, Lkotlinx/coroutines/ThreadLocalEventLoop;->INSTANCE:Lkotlinx/coroutines/ThreadLocalEventLoop;
invoke-virtual {v1}, Lkotlinx/coroutines/ThreadLocalEventLoop;->currentOrNull$kotlinx_coroutines_core()Lkotlinx/coroutines/EventLoop;
move-result-object v1
.line 55
:goto_2
sget-object v2, Lkotlinx/coroutines/GlobalScope;->INSTANCE:Lkotlinx/coroutines/GlobalScope;
invoke-static {v2, p0}, Lkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
.line 57
:goto_3
new-instance v2, Lkotlinx/coroutines/BlockingCoroutine;
invoke-direct {v2, p0, v0, v1}, Lkotlinx/coroutines/BlockingCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Thread;Lkotlinx/coroutines/EventLoop;)V
.line 58
sget-object p0, Lkotlinx/coroutines/CoroutineStart;->DEFAULT:Lkotlinx/coroutines/CoroutineStart;
invoke-virtual {v2, p0, v2, p1}, Lkotlinx/coroutines/AbstractCoroutine;->start(Lkotlinx/coroutines/CoroutineStart;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V
.line 59
invoke-virtual {v2}, Lkotlinx/coroutines/BlockingCoroutine;->joinBlocking()Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static synthetic runBlocking$default(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/Object;
.locals 0
and-int/lit8 p2, p2, 0x1
if-eqz p2, :cond_0
.line 17
sget-object p0, Lkotlin/coroutines/EmptyCoroutineContext;->INSTANCE:Lkotlin/coroutines/EmptyCoroutineContext;
.line 38
:cond_0
invoke-static {p0, p1}, Lkotlinx/coroutines/BuildersKt;->runBlocking(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method

View File

@@ -0,0 +1,260 @@
.class public abstract synthetic Lkotlinx/coroutines/BuildersKt__Builders_commonKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final async(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Deferred;
.locals 1
.line 87
invoke-static {p0, p1}, Lkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
.line 88
invoke-virtual {p2}, Lkotlinx/coroutines/CoroutineStart;->isLazy()Z
move-result p1
if-eqz p1, :cond_0
.line 89
new-instance p1, Lkotlinx/coroutines/LazyDeferredCoroutine;
invoke-direct {p1, p0, p3}, Lkotlinx/coroutines/LazyDeferredCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)V
goto :goto_0
.line 90
:cond_0
new-instance p1, Lkotlinx/coroutines/DeferredCoroutine;
const/4 v0, 0x1
invoke-direct {p1, p0, v0}, Lkotlinx/coroutines/DeferredCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Z)V
.line 91
:goto_0
invoke-virtual {p1, p2, p1, p3}, Lkotlinx/coroutines/AbstractCoroutine;->start(Lkotlinx/coroutines/CoroutineStart;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V
return-object p1
.end method
.method public static synthetic async$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Deferred;
.locals 0
and-int/lit8 p5, p4, 0x1
if-eqz p5, :cond_0
.line 83
sget-object p1, Lkotlin/coroutines/EmptyCoroutineContext;->INSTANCE:Lkotlin/coroutines/EmptyCoroutineContext;
:cond_0
and-int/lit8 p4, p4, 0x2
if-eqz p4, :cond_1
.line 84
sget-object p2, Lkotlinx/coroutines/CoroutineStart;->DEFAULT:Lkotlinx/coroutines/CoroutineStart;
.line 82
:cond_1
invoke-static {p0, p1, p2, p3}, Lkotlinx/coroutines/BuildersKt;->async(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Deferred;
move-result-object p0
return-object p0
.end method
.method public static final launch(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;
.locals 1
.line 52
invoke-static {p0, p1}, Lkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
.line 53
invoke-virtual {p2}, Lkotlinx/coroutines/CoroutineStart;->isLazy()Z
move-result p1
if-eqz p1, :cond_0
.line 54
new-instance p1, Lkotlinx/coroutines/LazyStandaloneCoroutine;
invoke-direct {p1, p0, p3}, Lkotlinx/coroutines/LazyStandaloneCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)V
goto :goto_0
.line 55
:cond_0
new-instance p1, Lkotlinx/coroutines/StandaloneCoroutine;
const/4 v0, 0x1
invoke-direct {p1, p0, v0}, Lkotlinx/coroutines/StandaloneCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Z)V
.line 56
:goto_0
invoke-virtual {p1, p2, p1, p3}, Lkotlinx/coroutines/AbstractCoroutine;->start(Lkotlinx/coroutines/CoroutineStart;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)V
return-object p1
.end method
.method public static synthetic launch$default(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
.locals 0
and-int/lit8 p5, p4, 0x1
if-eqz p5, :cond_0
.line 48
sget-object p1, Lkotlin/coroutines/EmptyCoroutineContext;->INSTANCE:Lkotlin/coroutines/EmptyCoroutineContext;
:cond_0
and-int/lit8 p4, p4, 0x2
if-eqz p4, :cond_1
.line 49
sget-object p2, Lkotlinx/coroutines/CoroutineStart;->DEFAULT:Lkotlinx/coroutines/CoroutineStart;
.line 47
:cond_1
invoke-static {p0, p1, p2, p3}, Lkotlinx/coroutines/BuildersKt;->launch(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/Job;
move-result-object p0
return-object p0
.end method
.method public static final withContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 8
.line 151
invoke-interface {p2}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v0
.line 153
invoke-static {v0, p0}, Lkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
.line 155
invoke-static {p0}, Lkotlinx/coroutines/JobKt;->ensureActive(Lkotlin/coroutines/CoroutineContext;)V
if-ne p0, v0, :cond_0
.line 158
new-instance v0, Lkotlinx/coroutines/internal/ScopeCoroutine;
invoke-direct {v0, p0, p2}, Lkotlinx/coroutines/internal/ScopeCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V
.line 159
invoke-static {v0, v0, p1}, Lkotlinx/coroutines/intrinsics/UndispatchedKt;->startUndispatchedOrReturn(Lkotlinx/coroutines/internal/ScopeCoroutine;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p0
goto :goto_0
.line 163
:cond_0
sget-object v1, Lkotlin/coroutines/ContinuationInterceptor;->Key:Lkotlin/coroutines/ContinuationInterceptor$Key;
invoke-interface {p0, v1}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object v2
invoke-interface {v0, v1}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object v0
invoke-static {v2, v0}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1
.line 164
new-instance v0, Lkotlinx/coroutines/UndispatchedCoroutine;
invoke-direct {v0, p0, p2}, Lkotlinx/coroutines/UndispatchedCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V
.line 166
invoke-virtual {v0}, Lkotlinx/coroutines/AbstractCoroutine;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object p0
const/4 v1, 0x0
.line 95
invoke-static {p0, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->updateThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
.line 167
:try_start_0
invoke-static {v0, v0, p1}, Lkotlinx/coroutines/intrinsics/UndispatchedKt;->startUndispatchedOrReturn(Lkotlinx/coroutines/internal/ScopeCoroutine;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 99
invoke-static {p0, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
move-object p0, p1
goto :goto_0
:catchall_0
move-exception p1
invoke-static {p0, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
throw p1
.line 171
:cond_1
new-instance v0, Lkotlinx/coroutines/DispatchedCoroutine;
invoke-direct {v0, p0, p2}, Lkotlinx/coroutines/DispatchedCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V
const/4 v5, 0x0
const/4 v6, 0x4
const/4 v7, 0x0
move-object v2, p1
move-object v3, v0
move-object v4, v0
.line 172
invoke-static/range {v2 .. v7}, Lkotlinx/coroutines/intrinsics/CancellableKt;->startCoroutineCancellable$default(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
.line 173
invoke-virtual {v0}, Lkotlinx/coroutines/DispatchedCoroutine;->getResult$kotlinx_coroutines_core()Ljava/lang/Object;
move-result-object p0
.line 149
:goto_0
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
move-result-object p1
if-ne p0, p1, :cond_2
invoke-static {p2}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V
:cond_2
return-object p0
.end method

View File

@@ -0,0 +1,78 @@
.class public final Lkotlinx/coroutines/CancelFutureOnCancel;
.super Lkotlinx/coroutines/CancelHandler;
.source "SourceFile"
# instance fields
.field public final future:Ljava/util/concurrent/Future;
# direct methods
.method public constructor <init>(Ljava/util/concurrent/Future;)V
.locals 0
.line 45
invoke-direct {p0}, Lkotlinx/coroutines/CancelHandler;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/CancelFutureOnCancel;->future:Ljava/util/concurrent/Future;
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 45
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/CancelFutureOnCancel;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 1
if-eqz p1, :cond_0
iget-object p1, p0, Lkotlinx/coroutines/CancelFutureOnCancel;->future:Ljava/util/concurrent/Future;
const/4 v0, 0x0
.line 49
invoke-interface {p1, v0}, Ljava/util/concurrent/Future;->cancel(Z)Z
:cond_0
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 51
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "CancelFutureOnCancel["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CancelFutureOnCancel;->future:Ljava/util/concurrent/Future;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v1, 0x5d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,17 @@
.class public abstract Lkotlinx/coroutines/CancelHandler;
.super Lkotlinx/coroutines/CancelHandlerBase;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/NotCompleted;
# direct methods
.method public constructor <init>()V
.locals 0
.line 635
invoke-direct {p0}, Lkotlinx/coroutines/CancelHandlerBase;-><init>()V
return-void
.end method

View File

@@ -0,0 +1,22 @@
.class public abstract Lkotlinx/coroutines/CancelHandlerBase;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlin/jvm/functions/Function1;
# direct methods
.method public constructor <init>()V
.locals 0
.line 15
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public abstract invoke(Ljava/lang/Throwable;)V
.end method

View File

@@ -0,0 +1,45 @@
.class public abstract Lkotlinx/coroutines/CancellableContinuation$DefaultImpls;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/CancellableContinuation;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DefaultImpls"
.end annotation
# direct methods
.method public static synthetic cancel$default(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Throwable;ILjava/lang/Object;)Z
.locals 0
if-nez p3, :cond_1
and-int/lit8 p2, p2, 0x1
if-eqz p2, :cond_0
const/4 p1, 0x0
.line 125
:cond_0
invoke-interface {p0, p1}, Lkotlinx/coroutines/CancellableContinuation;->cancel(Ljava/lang/Throwable;)Z
move-result p0
return p0
:cond_1
new-instance p0, Ljava/lang/UnsupportedOperationException;
const-string p1, "Super calls with default arguments not supported in this target, function: cancel"
invoke-direct {p0, p1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p0
.end method

View File

@@ -0,0 +1,43 @@
.class public interface abstract Lkotlinx/coroutines/CancellableContinuation;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlin/coroutines/Continuation;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/CancellableContinuation$DefaultImpls;
}
.end annotation
# virtual methods
.method public abstract cancel(Ljava/lang/Throwable;)Z
.end method
.method public abstract completeResume(Ljava/lang/Object;)V
.end method
.method public abstract invokeOnCancellation(Lkotlin/jvm/functions/Function1;)V
.end method
.method public abstract isActive()Z
.end method
.method public abstract isCompleted()Z
.end method
.method public abstract resume(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V
.end method
.method public abstract resumeUndispatched(Lkotlinx/coroutines/CoroutineDispatcher;Ljava/lang/Object;)V
.end method
.method public abstract tryResume(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
.end method
.method public abstract tryResumeWithException(Ljava/lang/Throwable;)Ljava/lang/Object;
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,24 @@
.class public abstract Lkotlinx/coroutines/CancellableContinuationImplKt;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final RESUME_TOKEN:Lkotlinx/coroutines/internal/Symbol;
# direct methods
.method static constructor <clinit>()V
.locals 2
.line 27
new-instance v0, Lkotlinx/coroutines/internal/Symbol;
const-string v1, "RESUME_TOKEN"
invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;-><init>(Ljava/lang/String;)V
sput-object v0, Lkotlinx/coroutines/CancellableContinuationImplKt;->RESUME_TOKEN:Lkotlinx/coroutines/internal/Symbol;
return-void
.end method

View File

@@ -0,0 +1,78 @@
.class public abstract Lkotlinx/coroutines/CancellableContinuationKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final disposeOnCancellation(Lkotlinx/coroutines/CancellableContinuation;Lkotlinx/coroutines/DisposableHandle;)V
.locals 1
.line 380
new-instance v0, Lkotlinx/coroutines/DisposeOnCancel;
invoke-direct {v0, p1}, Lkotlinx/coroutines/DisposeOnCancel;-><init>(Lkotlinx/coroutines/DisposableHandle;)V
invoke-interface {p0, v0}, Lkotlinx/coroutines/CancellableContinuation;->invokeOnCancellation(Lkotlin/jvm/functions/Function1;)V
return-void
.end method
.method public static final getOrCreateCancellableContinuation(Lkotlin/coroutines/Continuation;)Lkotlinx/coroutines/CancellableContinuationImpl;
.locals 2
.line 347
instance-of v0, p0, Lkotlinx/coroutines/internal/DispatchedContinuation;
if-nez v0, :cond_0
.line 348
new-instance v0, Lkotlinx/coroutines/CancellableContinuationImpl;
const/4 v1, 0x1
invoke-direct {v0, p0, v1}, Lkotlinx/coroutines/CancellableContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;I)V
return-object v0
.line 364
:cond_0
move-object v0, p0
check-cast v0, Lkotlinx/coroutines/internal/DispatchedContinuation;
invoke-virtual {v0}, Lkotlinx/coroutines/internal/DispatchedContinuation;->claimReusableCancellableContinuation$kotlinx_coroutines_core()Lkotlinx/coroutines/CancellableContinuationImpl;
move-result-object v0
if-eqz v0, :cond_3
invoke-virtual {v0}, Lkotlinx/coroutines/CancellableContinuationImpl;->resetStateReusable()Z
move-result v1
if-eqz v1, :cond_1
goto :goto_0
:cond_1
const/4 v0, 0x0
:goto_0
if-nez v0, :cond_2
goto :goto_1
:cond_2
return-object v0
.line 365
:cond_3
:goto_1
new-instance v0, Lkotlinx/coroutines/CancellableContinuationImpl;
const/4 v1, 0x2
invoke-direct {v0, p0, v1}, Lkotlinx/coroutines/CancellableContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;I)V
return-object v0
.end method

View File

@@ -0,0 +1,86 @@
.class public final Lkotlinx/coroutines/CancelledContinuation;
.super Lkotlinx/coroutines/CompletedExceptionally;
.source "SourceFile"
# static fields
.field public static final _resumed$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
# instance fields
.field private volatile _resumed:I
# direct methods
.method static constructor <clinit>()V
.locals 2
const-class v0, Lkotlinx/coroutines/CancelledContinuation;
const-string v1, "_resumed"
invoke-static {v0, v1}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
move-result-object v0
sput-object v0, Lkotlinx/coroutines/CancelledContinuation;->_resumed$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return-void
.end method
.method public constructor <init>(Lkotlin/coroutines/Continuation;Ljava/lang/Throwable;Z)V
.locals 2
if-nez p2, :cond_0
.line 63
new-instance p2, Ljava/util/concurrent/CancellationException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Continuation "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string p1, " was cancelled normally"
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Ljava/util/concurrent/CancellationException;-><init>(Ljava/lang/String;)V
:cond_0
invoke-direct {p0, p2, p3}, Lkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;Z)V
const/4 p1, 0x0
iput p1, p0, Lkotlinx/coroutines/CancelledContinuation;->_resumed:I
return-void
.end method
# virtual methods
.method public final makeResumed()Z
.locals 3
sget-object v0, Lkotlinx/coroutines/CancelledContinuation;->_resumed$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
const/4 v1, 0x0
const/4 v2, 0x1
.line 65
invoke-virtual {v0, p0, v1, v2}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->compareAndSet(Ljava/lang/Object;II)Z
move-result v0
return v0
.end method

View File

@@ -0,0 +1,54 @@
.class public final Lkotlinx/coroutines/ChildContinuation;
.super Lkotlinx/coroutines/JobCancellingNode;
.source "SourceFile"
# instance fields
.field public final child:Lkotlinx/coroutines/CancellableContinuationImpl;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/CancellableContinuationImpl;)V
.locals 0
.line 1448
invoke-direct {p0}, Lkotlinx/coroutines/JobCancellingNode;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/ChildContinuation;->child:Lkotlinx/coroutines/CancellableContinuationImpl;
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1444
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/ChildContinuation;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 1
iget-object p1, p0, Lkotlinx/coroutines/ChildContinuation;->child:Lkotlinx/coroutines/CancellableContinuationImpl;
.line 1450
invoke-virtual {p0}, Lkotlinx/coroutines/JobNode;->getJob()Lkotlinx/coroutines/JobSupport;
move-result-object v0
invoke-virtual {p1, v0}, Lkotlinx/coroutines/CancellableContinuationImpl;->getContinuationCancellationCause(Lkotlinx/coroutines/Job;)Ljava/lang/Throwable;
move-result-object v0
invoke-virtual {p1, v0}, Lkotlinx/coroutines/CancellableContinuationImpl;->parentCancelled$kotlinx_coroutines_core(Ljava/lang/Throwable;)V
return-void
.end method

View File

@@ -0,0 +1,14 @@
.class public interface abstract Lkotlinx/coroutines/ChildHandle;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/DisposableHandle;
# virtual methods
.method public abstract childCancelled(Ljava/lang/Throwable;)Z
.end method
.method public abstract getParent()Lkotlinx/coroutines/Job;
.end method

View File

@@ -0,0 +1,79 @@
.class public final Lkotlinx/coroutines/ChildHandleNode;
.super Lkotlinx/coroutines/JobCancellingNode;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/ChildHandle;
# instance fields
.field public final childJob:Lkotlinx/coroutines/ChildJob;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/ChildJob;)V
.locals 0
.line 1437
invoke-direct {p0}, Lkotlinx/coroutines/JobCancellingNode;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/ChildHandleNode;->childJob:Lkotlinx/coroutines/ChildJob;
return-void
.end method
# virtual methods
.method public childCancelled(Ljava/lang/Throwable;)Z
.locals 1
.line 1440
invoke-virtual {p0}, Lkotlinx/coroutines/JobNode;->getJob()Lkotlinx/coroutines/JobSupport;
move-result-object v0
invoke-virtual {v0, p1}, Lkotlinx/coroutines/JobSupport;->childCancelled(Ljava/lang/Throwable;)Z
move-result p1
return p1
.end method
.method public getParent()Lkotlinx/coroutines/Job;
.locals 1
.line 1438
invoke-virtual {p0}, Lkotlinx/coroutines/JobNode;->getJob()Lkotlinx/coroutines/JobSupport;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1435
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/ChildHandleNode;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 1
iget-object p1, p0, Lkotlinx/coroutines/ChildHandleNode;->childJob:Lkotlinx/coroutines/ChildJob;
.line 1439
invoke-virtual {p0}, Lkotlinx/coroutines/JobNode;->getJob()Lkotlinx/coroutines/JobSupport;
move-result-object v0
invoke-interface {p1, v0}, Lkotlinx/coroutines/ChildJob;->parentCancelled(Lkotlinx/coroutines/ParentJob;)V
return-void
.end method

View File

@@ -0,0 +1,11 @@
.class public interface abstract Lkotlinx/coroutines/ChildJob;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Job;
# virtual methods
.method public abstract parentCancelled(Lkotlinx/coroutines/ParentJob;)V
.end method

View File

@@ -0,0 +1,14 @@
.class public interface abstract Lkotlinx/coroutines/CompletableDeferred;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Deferred;
# virtual methods
.method public abstract complete(Ljava/lang/Object;)Z
.end method
.method public abstract completeExceptionally(Ljava/lang/Throwable;)Z
.end method

View File

@@ -0,0 +1,88 @@
.class public final Lkotlinx/coroutines/CompletableDeferredImpl;
.super Lkotlinx/coroutines/JobSupport;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/CompletableDeferred;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/Job;)V
.locals 1
const/4 v0, 0x1
.line 82
invoke-direct {p0, v0}, Lkotlinx/coroutines/JobSupport;-><init>(Z)V
.line 83
invoke-virtual {p0, p1}, Lkotlinx/coroutines/JobSupport;->initParentJob(Lkotlinx/coroutines/Job;)V
return-void
.end method
# virtual methods
.method public await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 0
.line 86
invoke-virtual {p0, p1}, Lkotlinx/coroutines/JobSupport;->awaitInternal(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
move-result-object p1
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
return-object p1
.end method
.method public complete(Ljava/lang/Object;)Z
.locals 0
.line 90
invoke-virtual {p0, p1}, Lkotlinx/coroutines/JobSupport;->makeCompleting$kotlinx_coroutines_core(Ljava/lang/Object;)Z
move-result p1
return p1
.end method
.method public completeExceptionally(Ljava/lang/Throwable;)Z
.locals 4
.line 92
new-instance v0, Lkotlinx/coroutines/CompletedExceptionally;
const/4 v1, 0x2
const/4 v2, 0x0
const/4 v3, 0x0
invoke-direct {v0, p1, v3, v1, v2}, Lkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
invoke-virtual {p0, v0}, Lkotlinx/coroutines/JobSupport;->makeCompleting$kotlinx_coroutines_core(Ljava/lang/Object;)Z
move-result p1
return p1
.end method
.method public getCompleted()Ljava/lang/Object;
.locals 1
.line 85
invoke-virtual {p0}, Lkotlinx/coroutines/JobSupport;->getCompletedInternal$kotlinx_coroutines_core()Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public getOnCancelComplete$kotlinx_coroutines_core()Z
.locals 1
const/4 v0, 0x1
return v0
.end method

View File

@@ -0,0 +1,59 @@
.class public abstract Lkotlinx/coroutines/CompletableDeferredKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final CompletableDeferred(Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/CompletableDeferred;
.locals 1
.line 68
new-instance v0, Lkotlinx/coroutines/CompletableDeferredImpl;
invoke-direct {v0, p0}, Lkotlinx/coroutines/CompletableDeferredImpl;-><init>(Lkotlinx/coroutines/Job;)V
return-object v0
.end method
.method public static synthetic CompletableDeferred$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableDeferred;
.locals 0
and-int/lit8 p1, p1, 0x1
if-eqz p1, :cond_0
const/4 p0, 0x0
.line 68
:cond_0
invoke-static {p0}, Lkotlinx/coroutines/CompletableDeferredKt;->CompletableDeferred(Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/CompletableDeferred;
move-result-object p0
return-object p0
.end method
.method public static final completeWith(Lkotlinx/coroutines/CompletableDeferred;Ljava/lang/Object;)Z
.locals 1
.line 61
invoke-static {p1}, Lkotlin/Result;->exceptionOrNull-impl(Ljava/lang/Object;)Ljava/lang/Throwable;
move-result-object v0
if-nez v0, :cond_0
invoke-interface {p0, p1}, Lkotlinx/coroutines/CompletableDeferred;->complete(Ljava/lang/Object;)Z
move-result p0
goto :goto_0
:cond_0
invoke-interface {p0, v0}, Lkotlinx/coroutines/CompletableDeferred;->completeExceptionally(Ljava/lang/Throwable;)Z
move-result p0
:goto_0
return p0
.end method

View File

@@ -0,0 +1,6 @@
.class public interface abstract Lkotlinx/coroutines/CompletableJob;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Job;

View File

@@ -0,0 +1,467 @@
.class public final Lkotlinx/coroutines/CompletedContinuation;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public final cancelCause:Ljava/lang/Throwable;
.field public final cancelHandler:Lkotlinx/coroutines/CancelHandler;
.field public final idempotentResume:Ljava/lang/Object;
.field public final onCancellation:Lkotlin/jvm/functions/Function1;
.field public final result:Ljava/lang/Object;
# direct methods
.method public constructor <init>(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)V
.locals 0
.line 648
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/CompletedContinuation;->result:Ljava/lang/Object;
iput-object p2, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelHandler:Lkotlinx/coroutines/CancelHandler;
iput-object p3, p0, Lkotlinx/coroutines/CompletedContinuation;->onCancellation:Lkotlin/jvm/functions/Function1;
iput-object p4, p0, Lkotlinx/coroutines/CompletedContinuation;->idempotentResume:Ljava/lang/Object;
iput-object p5, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelCause:Ljava/lang/Throwable;
return-void
.end method
.method public synthetic constructor <init>(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
.locals 7
and-int/lit8 p7, p6, 0x2
const/4 v0, 0x0
if-eqz p7, :cond_0
move-object v3, v0
goto :goto_0
:cond_0
move-object v3, p2
:goto_0
and-int/lit8 p2, p6, 0x4
if-eqz p2, :cond_1
move-object v4, v0
goto :goto_1
:cond_1
move-object v4, p3
:goto_1
and-int/lit8 p2, p6, 0x8
if-eqz p2, :cond_2
move-object v5, v0
goto :goto_2
:cond_2
move-object v5, p4
:goto_2
and-int/lit8 p2, p6, 0x10
if-eqz p2, :cond_3
move-object v6, v0
goto :goto_3
:cond_3
move-object v6, p5
:goto_3
move-object v1, p0
move-object v2, p1
.line 648
invoke-direct/range {v1 .. v6}, Lkotlinx/coroutines/CompletedContinuation;-><init>(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)V
return-void
.end method
.method public static synthetic copy$default(Lkotlinx/coroutines/CompletedContinuation;Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;ILjava/lang/Object;)Lkotlinx/coroutines/CompletedContinuation;
.locals 3
and-int/lit8 p7, p6, 0x1
if-eqz p7, :cond_0
iget-object p1, p0, Lkotlinx/coroutines/CompletedContinuation;->result:Ljava/lang/Object;
:cond_0
and-int/lit8 p7, p6, 0x2
if-eqz p7, :cond_1
iget-object p2, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelHandler:Lkotlinx/coroutines/CancelHandler;
:cond_1
move-object p7, p2
and-int/lit8 p2, p6, 0x4
if-eqz p2, :cond_2
iget-object p3, p0, Lkotlinx/coroutines/CompletedContinuation;->onCancellation:Lkotlin/jvm/functions/Function1;
:cond_2
move-object v0, p3
and-int/lit8 p2, p6, 0x8
if-eqz p2, :cond_3
iget-object p4, p0, Lkotlinx/coroutines/CompletedContinuation;->idempotentResume:Ljava/lang/Object;
:cond_3
move-object v1, p4
and-int/lit8 p2, p6, 0x10
if-eqz p2, :cond_4
iget-object p5, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelCause:Ljava/lang/Throwable;
:cond_4
move-object v2, p5
move-object p2, p0
move-object p3, p1
move-object p4, p7
move-object p5, v0
move-object p6, v1
move-object p7, v2
invoke-virtual/range {p2 .. p7}, Lkotlinx/coroutines/CompletedContinuation;->copy(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)Lkotlinx/coroutines/CompletedContinuation;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public final copy(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)Lkotlinx/coroutines/CompletedContinuation;
.locals 7
new-instance v6, Lkotlinx/coroutines/CompletedContinuation;
move-object v0, v6
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v4, p4
move-object v5, p5
invoke-direct/range {v0 .. v5}, Lkotlinx/coroutines/CompletedContinuation;-><init>(Ljava/lang/Object;Lkotlinx/coroutines/CancelHandler;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Ljava/lang/Throwable;)V
return-object v6
.end method
.method public equals(Ljava/lang/Object;)Z
.locals 4
const/4 v0, 0x1
if-ne p0, p1, :cond_0
return v0
:cond_0
instance-of v1, p1, Lkotlinx/coroutines/CompletedContinuation;
const/4 v2, 0x0
if-nez v1, :cond_1
return v2
:cond_1
check-cast p1, Lkotlinx/coroutines/CompletedContinuation;
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->result:Ljava/lang/Object;
iget-object v3, p1, Lkotlinx/coroutines/CompletedContinuation;->result:Ljava/lang/Object;
invoke-static {v1, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_2
return v2
:cond_2
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelHandler:Lkotlinx/coroutines/CancelHandler;
iget-object v3, p1, Lkotlinx/coroutines/CompletedContinuation;->cancelHandler:Lkotlinx/coroutines/CancelHandler;
invoke-static {v1, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_3
return v2
:cond_3
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->onCancellation:Lkotlin/jvm/functions/Function1;
iget-object v3, p1, Lkotlinx/coroutines/CompletedContinuation;->onCancellation:Lkotlin/jvm/functions/Function1;
invoke-static {v1, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_4
return v2
:cond_4
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->idempotentResume:Ljava/lang/Object;
iget-object v3, p1, Lkotlinx/coroutines/CompletedContinuation;->idempotentResume:Ljava/lang/Object;
invoke-static {v1, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_5
return v2
:cond_5
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelCause:Ljava/lang/Throwable;
iget-object p1, p1, Lkotlinx/coroutines/CompletedContinuation;->cancelCause:Ljava/lang/Throwable;
invoke-static {v1, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_6
return v2
:cond_6
return v0
.end method
.method public final getCancelled()Z
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelCause:Ljava/lang/Throwable;
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public hashCode()I
.locals 3
iget-object v0, p0, Lkotlinx/coroutines/CompletedContinuation;->result:Ljava/lang/Object;
const/4 v1, 0x0
if-nez v0, :cond_0
move v0, v1
goto :goto_0
:cond_0
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
:goto_0
mul-int/lit8 v0, v0, 0x1f
iget-object v2, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelHandler:Lkotlinx/coroutines/CancelHandler;
if-nez v2, :cond_1
move v2, v1
goto :goto_1
:cond_1
invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I
move-result v2
:goto_1
add-int/2addr v0, v2
mul-int/lit8 v0, v0, 0x1f
iget-object v2, p0, Lkotlinx/coroutines/CompletedContinuation;->onCancellation:Lkotlin/jvm/functions/Function1;
if-nez v2, :cond_2
move v2, v1
goto :goto_2
:cond_2
invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I
move-result v2
:goto_2
add-int/2addr v0, v2
mul-int/lit8 v0, v0, 0x1f
iget-object v2, p0, Lkotlinx/coroutines/CompletedContinuation;->idempotentResume:Ljava/lang/Object;
if-nez v2, :cond_3
move v2, v1
goto :goto_3
:cond_3
invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I
move-result v2
:goto_3
add-int/2addr v0, v2
mul-int/lit8 v0, v0, 0x1f
iget-object v2, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelCause:Ljava/lang/Throwable;
if-nez v2, :cond_4
goto :goto_4
:cond_4
invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I
move-result v1
:goto_4
add-int/2addr v0, v1
return v0
.end method
.method public final invokeHandlers(Lkotlinx/coroutines/CancellableContinuationImpl;Ljava/lang/Throwable;)V
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelHandler:Lkotlinx/coroutines/CancelHandler;
if-eqz v0, :cond_0
.line 658
invoke-virtual {p1, v0, p2}, Lkotlinx/coroutines/CancellableContinuationImpl;->callCancelHandler(Lkotlinx/coroutines/CancelHandler;Ljava/lang/Throwable;)V
:cond_0
iget-object v0, p0, Lkotlinx/coroutines/CompletedContinuation;->onCancellation:Lkotlin/jvm/functions/Function1;
if-eqz v0, :cond_1
.line 659
invoke-virtual {p1, v0, p2}, Lkotlinx/coroutines/CancellableContinuationImpl;->callOnCancellation(Lkotlin/jvm/functions/Function1;Ljava/lang/Throwable;)V
:cond_1
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "CompletedContinuation(result="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->result:Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", cancelHandler="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelHandler:Lkotlinx/coroutines/CancelHandler;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", onCancellation="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->onCancellation:Lkotlin/jvm/functions/Function1;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", idempotentResume="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->idempotentResume:Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", cancelCause="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CompletedContinuation;->cancelCause:Ljava/lang/Throwable;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v1, 0x29
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,135 @@
.class public Lkotlinx/coroutines/CompletedExceptionally;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final _handled$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
# instance fields
.field private volatile _handled:I
.field public final cause:Ljava/lang/Throwable;
# direct methods
.method static constructor <clinit>()V
.locals 2
const-class v0, Lkotlinx/coroutines/CompletedExceptionally;
const-string v1, "_handled"
invoke-static {v0, v1}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
move-result-object v0
sput-object v0, Lkotlinx/coroutines/CompletedExceptionally;->_handled$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return-void
.end method
.method public constructor <init>(Ljava/lang/Throwable;Z)V
.locals 0
.line 42
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable;
iput p2, p0, Lkotlinx/coroutines/CompletedExceptionally;->_handled:I
return-void
.end method
.method public synthetic constructor <init>(Ljava/lang/Throwable;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
.locals 0
and-int/lit8 p3, p3, 0x2
if-eqz p3, :cond_0
const/4 p2, 0x0
.line 42
:cond_0
invoke-direct {p0, p1, p2}, Lkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;Z)V
return-void
.end method
# virtual methods
.method public final getHandled()Z
.locals 1
sget-object v0, Lkotlinx/coroutines/CompletedExceptionally;->_handled$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
.line 47
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->get(Ljava/lang/Object;)I
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public final makeHandled()Z
.locals 3
sget-object v0, Lkotlinx/coroutines/CompletedExceptionally;->_handled$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
const/4 v1, 0x0
const/4 v2, 0x1
.line 48
invoke-virtual {v0, p0, v1, v2}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->compareAndSet(Ljava/lang/Object;II)Z
move-result v0
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 49
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {p0}, Lkotlinx/coroutines/DebugStringsKt;->getClassSimpleName(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x5b
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v1, 0x5d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,140 @@
.class public final Lkotlinx/coroutines/CompletedWithCancellation;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public final onCancellation:Lkotlin/jvm/functions/Function1;
.field public final result:Ljava/lang/Object;
# direct methods
.method public constructor <init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V
.locals 0
.line 31
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/CompletedWithCancellation;->result:Ljava/lang/Object;
iput-object p2, p0, Lkotlinx/coroutines/CompletedWithCancellation;->onCancellation:Lkotlin/jvm/functions/Function1;
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 4
const/4 v0, 0x1
if-ne p0, p1, :cond_0
return v0
:cond_0
instance-of v1, p1, Lkotlinx/coroutines/CompletedWithCancellation;
const/4 v2, 0x0
if-nez v1, :cond_1
return v2
:cond_1
check-cast p1, Lkotlinx/coroutines/CompletedWithCancellation;
iget-object v1, p0, Lkotlinx/coroutines/CompletedWithCancellation;->result:Ljava/lang/Object;
iget-object v3, p1, Lkotlinx/coroutines/CompletedWithCancellation;->result:Ljava/lang/Object;
invoke-static {v1, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_2
return v2
:cond_2
iget-object v1, p0, Lkotlinx/coroutines/CompletedWithCancellation;->onCancellation:Lkotlin/jvm/functions/Function1;
iget-object p1, p1, Lkotlinx/coroutines/CompletedWithCancellation;->onCancellation:Lkotlin/jvm/functions/Function1;
invoke-static {v1, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_3
return v2
:cond_3
return v0
.end method
.method public hashCode()I
.locals 2
iget-object v0, p0, Lkotlinx/coroutines/CompletedWithCancellation;->result:Ljava/lang/Object;
if-nez v0, :cond_0
const/4 v0, 0x0
goto :goto_0
:cond_0
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
:goto_0
mul-int/lit8 v0, v0, 0x1f
iget-object v1, p0, Lkotlinx/coroutines/CompletedWithCancellation;->onCancellation:Lkotlin/jvm/functions/Function1;
invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I
move-result v1
add-int/2addr v0, v1
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "CompletedWithCancellation(result="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CompletedWithCancellation;->result:Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", onCancellation="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CompletedWithCancellation;->onCancellation:Lkotlin/jvm/functions/Function1;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v1, 0x29
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,22 @@
.class public abstract Lkotlinx/coroutines/CompletionHandlerBase;
.super Lkotlinx/coroutines/internal/LockFreeLinkedListNode;
.source "SourceFile"
# interfaces
.implements Lkotlin/jvm/functions/Function1;
# direct methods
.method public constructor <init>()V
.locals 0
.line 9
invoke-direct {p0}, Lkotlinx/coroutines/internal/LockFreeLinkedListNode;-><init>()V
return-void
.end method
# virtual methods
.method public abstract invoke(Ljava/lang/Throwable;)V
.end method

View File

@@ -0,0 +1,14 @@
.class public final Lkotlinx/coroutines/CompletionHandlerException;
.super Ljava/lang/RuntimeException;
.source "SourceFile"
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.locals 0
.line 13
invoke-direct {p0, p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method

View File

@@ -0,0 +1,124 @@
.class public abstract Lkotlinx/coroutines/CompletionStateKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final recoverResult(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 0
.line 26
instance-of p1, p0, Lkotlinx/coroutines/CompletedExceptionally;
if-eqz p1, :cond_0
.line 27
sget-object p1, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
check-cast p0, Lkotlinx/coroutines/CompletedExceptionally;
iget-object p0, p0, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable;
invoke-static {p0}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;
move-result-object p0
invoke-static {p0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
goto :goto_0
.line 29
:cond_0
invoke-static {p0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
:goto_0
return-object p0
.end method
.method public static final toState(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
.locals 3
.line 14
invoke-static {p0}, Lkotlin/Result;->exceptionOrNull-impl(Ljava/lang/Object;)Ljava/lang/Throwable;
move-result-object v0
if-nez v0, :cond_0
if-eqz p1, :cond_1
.line 15
new-instance v0, Lkotlinx/coroutines/CompletedWithCancellation;
invoke-direct {v0, p0, p1}, Lkotlinx/coroutines/CompletedWithCancellation;-><init>(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V
move-object p0, v0
goto :goto_0
.line 16
:cond_0
new-instance p0, Lkotlinx/coroutines/CompletedExceptionally;
const/4 p1, 0x2
const/4 v1, 0x0
const/4 v2, 0x0
invoke-direct {p0, v0, v2, p1, v1}, Lkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
:cond_1
:goto_0
return-object p0
.end method
.method public static final toState(Ljava/lang/Object;Lkotlinx/coroutines/CancellableContinuation;)Ljava/lang/Object;
.locals 3
.line 19
invoke-static {p0}, Lkotlin/Result;->exceptionOrNull-impl(Ljava/lang/Object;)Ljava/lang/Throwable;
move-result-object p1
if-nez p1, :cond_0
goto :goto_0
.line 21
:cond_0
new-instance p0, Lkotlinx/coroutines/CompletedExceptionally;
const/4 v0, 0x2
const/4 v1, 0x0
const/4 v2, 0x0
invoke-direct {p0, p1, v2, v0, v1}, Lkotlinx/coroutines/CompletedExceptionally;-><init>(Ljava/lang/Throwable;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
:goto_0
return-object p0
.end method
.method public static synthetic toState$default(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Object;
.locals 0
and-int/lit8 p2, p2, 0x1
if-eqz p2, :cond_0
const/4 p1, 0x0
.line 12
:cond_0
invoke-static {p0, p1}, Lkotlinx/coroutines/CompletionStateKt;->toState(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method

View File

@@ -0,0 +1,73 @@
.class public final Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;
.super Lkotlin/jvm/internal/Lambda;
.source "SourceFile"
# interfaces
.implements Lkotlin/jvm/functions/Function2;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lkotlinx/coroutines/CoroutineContextKt;->foldCopies(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Z)Lkotlin/coroutines/CoroutineContext;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = null
.end annotation
# static fields
.field public static final INSTANCE:Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;
invoke-direct {v0}, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;-><init>()V
sput-object v0, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;->INSTANCE:Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;
return-void
.end method
.method public constructor <init>()V
.locals 1
const/4 v0, 0x2
invoke-direct {p0, v0}, Lkotlin/jvm/internal/Lambda;-><init>(I)V
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 80
check-cast p1, Lkotlin/coroutines/CoroutineContext;
check-cast p2, Lkotlin/coroutines/CoroutineContext$Element;
invoke-virtual {p0, p1, p2}, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;->invoke(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext$Element;)Lkotlin/coroutines/CoroutineContext;
move-result-object p1
return-object p1
.end method
.method public final invoke(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext$Element;)Lkotlin/coroutines/CoroutineContext;
.locals 0
.line 85
invoke-interface {p1, p2}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,67 @@
.class public final Lkotlinx/coroutines/CoroutineContextKt$foldCopies$folded$1;
.super Lkotlin/jvm/internal/Lambda;
.source "SourceFile"
# interfaces
.implements Lkotlin/jvm/functions/Function2;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lkotlinx/coroutines/CoroutineContextKt;->foldCopies(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Z)Lkotlin/coroutines/CoroutineContext;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = null
.end annotation
# instance fields
.field public final synthetic $isNewCoroutine:Z
.field public final synthetic $leftoverContext:Lkotlin/jvm/internal/Ref$ObjectRef;
# direct methods
.method public constructor <init>(Lkotlin/jvm/internal/Ref$ObjectRef;Z)V
.locals 0
iput-object p1, p0, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$folded$1;->$leftoverContext:Lkotlin/jvm/internal/Ref$ObjectRef;
iput-boolean p2, p0, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$folded$1;->$isNewCoroutine:Z
const/4 p1, 0x2
invoke-direct {p0, p1}, Lkotlin/jvm/internal/Lambda;-><init>(I)V
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 63
check-cast p1, Lkotlin/coroutines/CoroutineContext;
check-cast p2, Lkotlin/coroutines/CoroutineContext$Element;
invoke-virtual {p0, p1, p2}, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$folded$1;->invoke(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext$Element;)Lkotlin/coroutines/CoroutineContext;
move-result-object p1
return-object p1
.end method
.method public final invoke(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext$Element;)Lkotlin/coroutines/CoroutineContext;
.locals 0
.line 64
invoke-interface {p1, p2}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,77 @@
.class public final Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;
.super Lkotlin/jvm/internal/Lambda;
.source "SourceFile"
# interfaces
.implements Lkotlin/jvm/functions/Function2;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lkotlinx/coroutines/CoroutineContextKt;->hasCopyableElements(Lkotlin/coroutines/CoroutineContext;)Z
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = null
.end annotation
# static fields
.field public static final INSTANCE:Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;
invoke-direct {v0}, Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;-><init>()V
sput-object v0, Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;->INSTANCE:Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;
return-void
.end method
.method public constructor <init>()V
.locals 1
const/4 v0, 0x2
invoke-direct {p0, v0}, Lkotlin/jvm/internal/Lambda;-><init>(I)V
return-void
.end method
# virtual methods
.method public final invoke(ZLkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Boolean;
.locals 0
.line 40
invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object p1
return-object p1
.end method
.method public bridge synthetic invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 40
check-cast p1, Ljava/lang/Boolean;
invoke-virtual {p1}, Ljava/lang/Boolean;->booleanValue()Z
move-result p1
check-cast p2, Lkotlin/coroutines/CoroutineContext$Element;
invoke-virtual {p0, p1, p2}, Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;->invoke(ZLkotlin/coroutines/CoroutineContext$Element;)Ljava/lang/Boolean;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,251 @@
.class public abstract Lkotlinx/coroutines/CoroutineContextKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final foldCopies(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Z)Lkotlin/coroutines/CoroutineContext;
.locals 3
.line 54
invoke-static {p0}, Lkotlinx/coroutines/CoroutineContextKt;->hasCopyableElements(Lkotlin/coroutines/CoroutineContext;)Z
move-result v0
.line 55
invoke-static {p1}, Lkotlinx/coroutines/CoroutineContextKt;->hasCopyableElements(Lkotlin/coroutines/CoroutineContext;)Z
move-result v1
if-nez v0, :cond_0
if-nez v1, :cond_0
.line 59
invoke-interface {p0, p1}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
return-object p0
.line 62
:cond_0
new-instance v0, Lkotlin/jvm/internal/Ref$ObjectRef;
invoke-direct {v0}, Lkotlin/jvm/internal/Ref$ObjectRef;-><init>()V
iput-object p1, v0, Lkotlin/jvm/internal/Ref$ObjectRef;->element:Ljava/lang/Object;
.line 63
sget-object p1, Lkotlin/coroutines/EmptyCoroutineContext;->INSTANCE:Lkotlin/coroutines/EmptyCoroutineContext;
new-instance v2, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$folded$1;
invoke-direct {v2, v0, p2}, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$folded$1;-><init>(Lkotlin/jvm/internal/Ref$ObjectRef;Z)V
invoke-interface {p0, p1, v2}, Lkotlin/coroutines/CoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lkotlin/coroutines/CoroutineContext;
if-eqz v1, :cond_1
iget-object p2, v0, Lkotlin/jvm/internal/Ref$ObjectRef;->element:Ljava/lang/Object;
.line 80
check-cast p2, Lkotlin/coroutines/CoroutineContext;
sget-object v1, Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;->INSTANCE:Lkotlinx/coroutines/CoroutineContextKt$foldCopies$1;
invoke-interface {p2, p1, v1}, Lkotlin/coroutines/CoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p1
iput-object p1, v0, Lkotlin/jvm/internal/Ref$ObjectRef;->element:Ljava/lang/Object;
:cond_1
iget-object p1, v0, Lkotlin/jvm/internal/Ref$ObjectRef;->element:Ljava/lang/Object;
.line 88
check-cast p1, Lkotlin/coroutines/CoroutineContext;
invoke-interface {p0, p1}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
return-object p0
.end method
.method public static final getCoroutineName(Lkotlin/coroutines/CoroutineContext;)Ljava/lang/String;
.locals 0
const/4 p0, 0x0
return-object p0
.end method
.method public static final hasCopyableElements(Lkotlin/coroutines/CoroutineContext;)Z
.locals 2
sget-object v0, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
sget-object v1, Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;->INSTANCE:Lkotlinx/coroutines/CoroutineContextKt$hasCopyableElements$1;
.line 40
invoke-interface {p0, v0, v1}, Lkotlin/coroutines/CoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/Boolean;
invoke-virtual {p0}, Ljava/lang/Boolean;->booleanValue()Z
move-result p0
return p0
.end method
.method public static final newCoroutineContext(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
.locals 1
.line 35
invoke-static {p1}, Lkotlinx/coroutines/CoroutineContextKt;->hasCopyableElements(Lkotlin/coroutines/CoroutineContext;)Z
move-result v0
if-nez v0, :cond_0
invoke-interface {p0, p1}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
return-object p0
:cond_0
const/4 v0, 0x0
.line 36
invoke-static {p0, p1, v0}, Lkotlinx/coroutines/CoroutineContextKt;->foldCopies(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Z)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
return-object p0
.end method
.method public static final newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
.locals 1
.line 19
invoke-interface {p0}, Lkotlinx/coroutines/CoroutineScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;
move-result-object p0
const/4 v0, 0x1
invoke-static {p0, p1, v0}, Lkotlinx/coroutines/CoroutineContextKt;->foldCopies(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/CoroutineContext;Z)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
.line 21
invoke-static {}, Lkotlinx/coroutines/Dispatchers;->getDefault()Lkotlinx/coroutines/CoroutineDispatcher;
move-result-object p1
if-eq p0, p1, :cond_0
sget-object p1, Lkotlin/coroutines/ContinuationInterceptor;->Key:Lkotlin/coroutines/ContinuationInterceptor$Key;
invoke-interface {p0, p1}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object p1
if-nez p1, :cond_0
.line 22
invoke-static {}, Lkotlinx/coroutines/Dispatchers;->getDefault()Lkotlinx/coroutines/CoroutineDispatcher;
move-result-object p1
invoke-interface {p0, p1}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
:cond_0
return-object p0
.end method
.method public static final undispatchedCompletion(Lkotlin/coroutines/jvm/internal/CoroutineStackFrame;)Lkotlinx/coroutines/UndispatchedCoroutine;
.locals 2
.line 148
:cond_0
instance-of v0, p0, Lkotlinx/coroutines/DispatchedCoroutine;
const/4 v1, 0x0
if-eqz v0, :cond_1
return-object v1
.line 149
:cond_1
invoke-interface {p0}, Lkotlin/coroutines/jvm/internal/CoroutineStackFrame;->getCallerFrame()Lkotlin/coroutines/jvm/internal/CoroutineStackFrame;
move-result-object p0
if-nez p0, :cond_2
return-object v1
.line 151
:cond_2
instance-of v0, p0, Lkotlinx/coroutines/UndispatchedCoroutine;
if-eqz v0, :cond_0
check-cast p0, Lkotlinx/coroutines/UndispatchedCoroutine;
return-object p0
.end method
.method public static final updateUndispatchedCompletion(Lkotlin/coroutines/Continuation;Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Lkotlinx/coroutines/UndispatchedCoroutine;
.locals 2
.line 125
instance-of v0, p0, Lkotlin/coroutines/jvm/internal/CoroutineStackFrame;
const/4 v1, 0x0
if-nez v0, :cond_0
return-object v1
.line 138
:cond_0
sget-object v0, Lkotlinx/coroutines/UndispatchedMarker;->INSTANCE:Lkotlinx/coroutines/UndispatchedMarker;
invoke-interface {p1, v0}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object v0
if-eqz v0, :cond_2
.line 140
check-cast p0, Lkotlin/coroutines/jvm/internal/CoroutineStackFrame;
invoke-static {p0}, Lkotlinx/coroutines/CoroutineContextKt;->undispatchedCompletion(Lkotlin/coroutines/jvm/internal/CoroutineStackFrame;)Lkotlinx/coroutines/UndispatchedCoroutine;
move-result-object p0
if-eqz p0, :cond_1
.line 141
invoke-virtual {p0, p1, p2}, Lkotlinx/coroutines/UndispatchedCoroutine;->saveThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
:cond_1
return-object p0
:cond_2
return-object v1
.end method

View File

@@ -0,0 +1,79 @@
.class public final Lkotlinx/coroutines/CoroutineDispatcher$Key$1;
.super Lkotlin/jvm/internal/Lambda;
.source "SourceFile"
# interfaces
.implements Lkotlin/jvm/functions/Function1;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lkotlinx/coroutines/CoroutineDispatcher$Key;-><init>()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = null
.end annotation
# static fields
.field public static final INSTANCE:Lkotlinx/coroutines/CoroutineDispatcher$Key$1;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/CoroutineDispatcher$Key$1;
invoke-direct {v0}, Lkotlinx/coroutines/CoroutineDispatcher$Key$1;-><init>()V
sput-object v0, Lkotlinx/coroutines/CoroutineDispatcher$Key$1;->INSTANCE:Lkotlinx/coroutines/CoroutineDispatcher$Key$1;
return-void
.end method
.method public constructor <init>()V
.locals 1
const/4 v0, 0x1
invoke-direct {p0, v0}, Lkotlin/jvm/internal/Lambda;-><init>(I)V
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 38
check-cast p1, Lkotlin/coroutines/CoroutineContext$Element;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/CoroutineDispatcher$Key$1;->invoke(Lkotlin/coroutines/CoroutineContext$Element;)Lkotlinx/coroutines/CoroutineDispatcher;
move-result-object p1
return-object p1
.end method
.method public final invoke(Lkotlin/coroutines/CoroutineContext$Element;)Lkotlinx/coroutines/CoroutineDispatcher;
.locals 1
.line 38
instance-of v0, p1, Lkotlinx/coroutines/CoroutineDispatcher;
if-eqz v0, :cond_0
check-cast p1, Lkotlinx/coroutines/CoroutineDispatcher;
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return-object p1
.end method

View File

@@ -0,0 +1,39 @@
.class public final Lkotlinx/coroutines/CoroutineDispatcher$Key;
.super Lkotlin/coroutines/AbstractCoroutineContextKey;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/CoroutineDispatcher;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Key"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 2
.line 37
sget-object v0, Lkotlin/coroutines/ContinuationInterceptor;->Key:Lkotlin/coroutines/ContinuationInterceptor$Key;
sget-object v1, Lkotlinx/coroutines/CoroutineDispatcher$Key$1;->INSTANCE:Lkotlinx/coroutines/CoroutineDispatcher$Key$1;
.line 36
invoke-direct {p0, v0, v1}, Lkotlin/coroutines/AbstractCoroutineContextKey;-><init>(Lkotlin/coroutines/CoroutineContext$Key;Lkotlin/jvm/functions/Function1;)V
return-void
.end method
.method public synthetic constructor <init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
.locals 0
.line 0
invoke-direct {p0}, Lkotlinx/coroutines/CoroutineDispatcher$Key;-><init>()V
return-void
.end method

View File

@@ -0,0 +1,201 @@
.class public abstract Lkotlinx/coroutines/CoroutineDispatcher;
.super Lkotlin/coroutines/AbstractCoroutineContextElement;
.source "SourceFile"
# interfaces
.implements Lkotlin/coroutines/ContinuationInterceptor;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/CoroutineDispatcher$Key;
}
.end annotation
# static fields
.field public static final Key:Lkotlinx/coroutines/CoroutineDispatcher$Key;
# direct methods
.method static constructor <clinit>()V
.locals 2
new-instance v0, Lkotlinx/coroutines/CoroutineDispatcher$Key;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lkotlinx/coroutines/CoroutineDispatcher$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
sput-object v0, Lkotlinx/coroutines/CoroutineDispatcher;->Key:Lkotlinx/coroutines/CoroutineDispatcher$Key;
return-void
.end method
.method public constructor <init>()V
.locals 1
sget-object v0, Lkotlin/coroutines/ContinuationInterceptor;->Key:Lkotlin/coroutines/ContinuationInterceptor$Key;
.line 32
invoke-direct {p0, v0}, Lkotlin/coroutines/AbstractCoroutineContextElement;-><init>(Lkotlin/coroutines/CoroutineContext$Key;)V
return-void
.end method
# virtual methods
.method public abstract dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V
.end method
.method public dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V
.locals 0
.line 150
invoke-virtual {p0, p1, p2}, Lkotlinx/coroutines/CoroutineDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V
return-void
.end method
.method public get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"<E::",
"Lkotlin/coroutines/CoroutineContext$Element;",
">(",
"Lkotlin/coroutines/CoroutineContext$Key;",
")TE;"
}
.end annotation
.line 31
invoke-static {p0, p1}, Lkotlin/coroutines/ContinuationInterceptor$DefaultImpls;->get(Lkotlin/coroutines/ContinuationInterceptor;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object p1
return-object p1
.end method
.method public final interceptContinuation(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lkotlin/coroutines/Continuation;",
")",
"Lkotlin/coroutines/Continuation;"
}
.end annotation
.line 159
new-instance v0, Lkotlinx/coroutines/internal/DispatchedContinuation;
invoke-direct {v0, p0, p1}, Lkotlinx/coroutines/internal/DispatchedContinuation;-><init>(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)V
return-object v0
.end method
.method public isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z
.locals 0
const/4 p1, 0x1
return p1
.end method
.method public limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher;
.locals 1
.line 106
invoke-static {p1}, Lkotlinx/coroutines/internal/LimitedDispatcherKt;->checkParallelism(I)V
.line 107
new-instance v0, Lkotlinx/coroutines/internal/LimitedDispatcher;
invoke-direct {v0, p0, p1}, Lkotlinx/coroutines/internal/LimitedDispatcher;-><init>(Lkotlinx/coroutines/CoroutineDispatcher;I)V
return-object v0
.end method
.method public minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lkotlin/coroutines/CoroutineContext$Key;",
")",
"Lkotlin/coroutines/CoroutineContext;"
}
.end annotation
.line 31
invoke-static {p0, p1}, Lkotlin/coroutines/ContinuationInterceptor$DefaultImpls;->minusKey(Lkotlin/coroutines/ContinuationInterceptor;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
move-result-object p1
return-object p1
.end method
.method public final plus(Lkotlinx/coroutines/CoroutineDispatcher;)Lkotlinx/coroutines/CoroutineDispatcher;
.locals 0
return-object p1
.end method
.method public final releaseInterceptedContinuation(Lkotlin/coroutines/Continuation;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lkotlin/coroutines/Continuation;",
")V"
}
.end annotation
const-string v0, "null cannot be cast to non-null type kotlinx.coroutines.internal.DispatchedContinuation<*>"
.line 166
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
check-cast p1, Lkotlinx/coroutines/internal/DispatchedContinuation;
.line 167
invoke-virtual {p1}, Lkotlinx/coroutines/internal/DispatchedContinuation;->release$kotlinx_coroutines_core()V
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 185
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {p0}, Lkotlinx/coroutines/DebugStringsKt;->getClassSimpleName(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x40
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-static {p0}, Lkotlinx/coroutines/DebugStringsKt;->getHexAddress(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,60 @@
.class public abstract Lkotlinx/coroutines/CoroutineExceptionHandler$DefaultImpls;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/CoroutineExceptionHandler;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DefaultImpls"
.end annotation
# direct methods
.method public static fold(Lkotlinx/coroutines/CoroutineExceptionHandler;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
.locals 0
.line 98
invoke-static {p0, p1, p2}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->fold(Lkotlin/coroutines/CoroutineContext$Element;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static get(Lkotlinx/coroutines/CoroutineExceptionHandler;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
.locals 0
.line 98
invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->get(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object p0
return-object p0
.end method
.method public static minusKey(Lkotlinx/coroutines/CoroutineExceptionHandler;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
.locals 0
.line 98
invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->minusKey(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
return-object p0
.end method
.method public static plus(Lkotlinx/coroutines/CoroutineExceptionHandler;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
.locals 0
.line 98
invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->plus(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
return-object p0
.end method

View File

@@ -0,0 +1,44 @@
.class public final Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlin/coroutines/CoroutineContext$Key;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/CoroutineExceptionHandler;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Key"
.end annotation
# static fields
.field public static final synthetic $$INSTANCE:Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
invoke-direct {v0}, Lkotlinx/coroutines/CoroutineExceptionHandler$Key;-><init>()V
sput-object v0, Lkotlinx/coroutines/CoroutineExceptionHandler$Key;->$$INSTANCE:Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 102
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View File

@@ -0,0 +1,36 @@
.class public interface abstract Lkotlinx/coroutines/CoroutineExceptionHandler;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlin/coroutines/CoroutineContext$Element;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/CoroutineExceptionHandler$DefaultImpls;,
Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
}
.end annotation
# static fields
.field public static final Key:Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
# direct methods
.method static constructor <clinit>()V
.locals 1
sget-object v0, Lkotlinx/coroutines/CoroutineExceptionHandler$Key;->$$INSTANCE:Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
sput-object v0, Lkotlinx/coroutines/CoroutineExceptionHandler;->Key:Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
return-void
.end method
# virtual methods
.method public abstract handleException(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V
.end method

View File

@@ -0,0 +1,70 @@
.class public abstract Lkotlinx/coroutines/CoroutineExceptionHandlerKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final handleCoroutineException(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V
.locals 1
.line 23
:try_start_0
sget-object v0, Lkotlinx/coroutines/CoroutineExceptionHandler;->Key:Lkotlinx/coroutines/CoroutineExceptionHandler$Key;
invoke-interface {p0, v0}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object v0
check-cast v0, Lkotlinx/coroutines/CoroutineExceptionHandler;
if-eqz v0, :cond_0
.line 24
invoke-interface {v0, p0, p1}, Lkotlinx/coroutines/CoroutineExceptionHandler;->handleException(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
return-void
:catchall_0
move-exception v0
goto :goto_0
.line 32
:cond_0
invoke-static {p0, p1}, Lkotlinx/coroutines/internal/CoroutineExceptionHandlerImpl_commonKt;->handleUncaughtCoroutineException(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V
return-void
.line 28
:goto_0
invoke-static {p1, v0}, Lkotlinx/coroutines/CoroutineExceptionHandlerKt;->handlerException(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
move-result-object p1
invoke-static {p0, p1}, Lkotlinx/coroutines/internal/CoroutineExceptionHandlerImpl_commonKt;->handleUncaughtCoroutineException(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V
return-void
.end method
.method public static final handlerException(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
.locals 2
if-ne p0, p1, :cond_0
return-object p0
.line 37
:cond_0
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Exception while trying to handle coroutine exception"
invoke-direct {v0, v1, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 75
invoke-static {v0, p0}, Lkotlin/ExceptionsKt;->addSuppressed(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
return-object v0
.end method

View File

@@ -0,0 +1,37 @@
.class public final Lkotlinx/coroutines/CoroutineName$Key;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlin/coroutines/CoroutineContext$Key;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/CoroutineName;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Key"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 23
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public synthetic constructor <init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
.locals 0
.line 0
invoke-direct {p0}, Lkotlinx/coroutines/CoroutineName$Key;-><init>()V
return-void
.end method

View File

@@ -0,0 +1,134 @@
.class public final Lkotlinx/coroutines/CoroutineName;
.super Lkotlin/coroutines/AbstractCoroutineContextElement;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/CoroutineName$Key;
}
.end annotation
# static fields
.field public static final Key:Lkotlinx/coroutines/CoroutineName$Key;
# instance fields
.field public final name:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.locals 2
new-instance v0, Lkotlinx/coroutines/CoroutineName$Key;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lkotlinx/coroutines/CoroutineName$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
sput-object v0, Lkotlinx/coroutines/CoroutineName;->Key:Lkotlinx/coroutines/CoroutineName$Key;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.locals 1
sget-object v0, Lkotlinx/coroutines/CoroutineName;->Key:Lkotlinx/coroutines/CoroutineName$Key;
.line 19
invoke-direct {p0, v0}, Lkotlin/coroutines/AbstractCoroutineContextElement;-><init>(Lkotlin/coroutines/CoroutineContext$Key;)V
iput-object p1, p0, Lkotlinx/coroutines/CoroutineName;->name:Ljava/lang/String;
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 3
const/4 v0, 0x1
if-ne p0, p1, :cond_0
return v0
:cond_0
instance-of v1, p1, Lkotlinx/coroutines/CoroutineName;
const/4 v2, 0x0
if-nez v1, :cond_1
return v2
:cond_1
check-cast p1, Lkotlinx/coroutines/CoroutineName;
iget-object v1, p0, Lkotlinx/coroutines/CoroutineName;->name:Ljava/lang/String;
iget-object p1, p1, Lkotlinx/coroutines/CoroutineName;->name:Ljava/lang/String;
invoke-static {v1, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_2
return v2
:cond_2
return v0
.end method
.method public final getName()Ljava/lang/String;
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/CoroutineName;->name:Ljava/lang/String;
return-object v0
.end method
.method public hashCode()I
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/CoroutineName;->name:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
move-result v0
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 28
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "CoroutineName("
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/CoroutineName;->name:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x29
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,8 @@
.class public interface abstract Lkotlinx/coroutines/CoroutineScope;
.super Ljava/lang/Object;
.source "SourceFile"
# virtual methods
.method public abstract getCoroutineContext()Lkotlin/coroutines/CoroutineContext;
.end method

View File

@@ -0,0 +1,226 @@
.class public abstract Lkotlinx/coroutines/CoroutineScopeKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final CoroutineScope(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/CoroutineScope;
.locals 3
.line 277
new-instance v0, Lkotlinx/coroutines/internal/ContextScope;
sget-object v1, Lkotlinx/coroutines/Job;->Key:Lkotlinx/coroutines/Job$Key;
invoke-interface {p0, v1}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object v1
if-eqz v1, :cond_0
goto :goto_0
:cond_0
const/4 v1, 0x1
const/4 v2, 0x0
invoke-static {v2, v1, v2}, Lkotlinx/coroutines/JobKt;->Job$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableJob;
move-result-object v1
invoke-interface {p0, v1}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
:goto_0
invoke-direct {v0, p0}, Lkotlinx/coroutines/internal/ContextScope;-><init>(Lkotlin/coroutines/CoroutineContext;)V
return-object v0
.end method
.method public static final MainScope()Lkotlinx/coroutines/CoroutineScope;
.locals 3
.line 118
new-instance v0, Lkotlinx/coroutines/internal/ContextScope;
const/4 v1, 0x0
const/4 v2, 0x1
invoke-static {v1, v2, v1}, Lkotlinx/coroutines/SupervisorKt;->SupervisorJob$default(Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/CompletableJob;
move-result-object v1
invoke-static {}, Lkotlinx/coroutines/Dispatchers;->getMain()Lkotlinx/coroutines/MainCoroutineDispatcher;
move-result-object v2
invoke-interface {v1, v2}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object v1
invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/ContextScope;-><init>(Lkotlin/coroutines/CoroutineContext;)V
return-object v0
.end method
.method public static final cancel(Lkotlinx/coroutines/CoroutineScope;Ljava/util/concurrent/CancellationException;)V
.locals 2
.line 286
invoke-interface {p0}, Lkotlinx/coroutines/CoroutineScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v0
sget-object v1, Lkotlinx/coroutines/Job;->Key:Lkotlinx/coroutines/Job$Key;
invoke-interface {v0, v1}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object v0
check-cast v0, Lkotlinx/coroutines/Job;
if-eqz v0, :cond_0
.line 287
invoke-interface {v0, p1}, Lkotlinx/coroutines/Job;->cancel(Ljava/util/concurrent/CancellationException;)V
return-void
.line 286
:cond_0
new-instance p1, Ljava/lang/IllegalStateException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Scope cannot be cancelled because it does not have a job: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {p1, p0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public static synthetic cancel$default(Lkotlinx/coroutines/CoroutineScope;Ljava/util/concurrent/CancellationException;ILjava/lang/Object;)V
.locals 0
and-int/lit8 p2, p2, 0x1
if-eqz p2, :cond_0
const/4 p1, 0x0
.line 285
:cond_0
invoke-static {p0, p1}, Lkotlinx/coroutines/CoroutineScopeKt;->cancel(Lkotlinx/coroutines/CoroutineScope;Ljava/util/concurrent/CancellationException;)V
return-void
.end method
.method public static final coroutineScope(Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 2
.line 263
new-instance v0, Lkotlinx/coroutines/internal/ScopeCoroutine;
invoke-interface {p1}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v1
invoke-direct {v0, v1, p1}, Lkotlinx/coroutines/internal/ScopeCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V
.line 264
invoke-static {v0, v0, p0}, Lkotlinx/coroutines/intrinsics/UndispatchedKt;->startUndispatchedOrReturn(Lkotlinx/coroutines/internal/ScopeCoroutine;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p0
.line 262
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
move-result-object v0
if-ne p0, v0, :cond_0
invoke-static {p1}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V
:cond_0
return-object p0
.end method
.method public static final ensureActive(Lkotlinx/coroutines/CoroutineScope;)V
.locals 0
.line 313
invoke-interface {p0}, Lkotlinx/coroutines/CoroutineScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;
move-result-object p0
invoke-static {p0}, Lkotlinx/coroutines/JobKt;->ensureActive(Lkotlin/coroutines/CoroutineContext;)V
return-void
.end method
.method public static final isActive(Lkotlinx/coroutines/CoroutineScope;)Z
.locals 1
.line 137
invoke-interface {p0}, Lkotlinx/coroutines/CoroutineScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;
move-result-object p0
sget-object v0, Lkotlinx/coroutines/Job;->Key:Lkotlinx/coroutines/Job$Key;
invoke-interface {p0, v0}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object p0
check-cast p0, Lkotlinx/coroutines/Job;
if-eqz p0, :cond_0
invoke-interface {p0}, Lkotlinx/coroutines/Job;->isActive()Z
move-result p0
goto :goto_0
:cond_0
const/4 p0, 0x1
:goto_0
return p0
.end method
.method public static final plus(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/CoroutineScope;
.locals 1
.line 96
new-instance v0, Lkotlinx/coroutines/internal/ContextScope;
invoke-interface {p0}, Lkotlinx/coroutines/CoroutineScope;->getCoroutineContext()Lkotlin/coroutines/CoroutineContext;
move-result-object p0
invoke-interface {p0, p1}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
invoke-direct {v0, p0}, Lkotlinx/coroutines/internal/ContextScope;-><init>(Lkotlin/coroutines/CoroutineContext;)V
return-object v0
.end method

View File

@@ -0,0 +1,92 @@
.class public abstract synthetic Lkotlinx/coroutines/CoroutineStart$WhenMappings;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/CoroutineStart;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1001
name = "WhenMappings"
.end annotation
# static fields
.field public static final synthetic $EnumSwitchMapping$0:[I
# direct methods
.method static constructor <clinit>()V
.locals 3
invoke-static {}, Lkotlinx/coroutines/CoroutineStart;->values()[Lkotlinx/coroutines/CoroutineStart;
move-result-object v0
array-length v0, v0
new-array v0, v0, [I
:try_start_0
sget-object v1, Lkotlinx/coroutines/CoroutineStart;->DEFAULT:Lkotlinx/coroutines/CoroutineStart;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x1
aput v2, v0, v1
:try_end_0
.catch Ljava/lang/NoSuchFieldError; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
:try_start_1
sget-object v1, Lkotlinx/coroutines/CoroutineStart;->ATOMIC:Lkotlinx/coroutines/CoroutineStart;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x2
aput v2, v0, v1
:try_end_1
.catch Ljava/lang/NoSuchFieldError; {:try_start_1 .. :try_end_1} :catch_1
:catch_1
:try_start_2
sget-object v1, Lkotlinx/coroutines/CoroutineStart;->UNDISPATCHED:Lkotlinx/coroutines/CoroutineStart;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x3
aput v2, v0, v1
:try_end_2
.catch Ljava/lang/NoSuchFieldError; {:try_start_2 .. :try_end_2} :catch_2
:catch_2
:try_start_3
sget-object v1, Lkotlinx/coroutines/CoroutineStart;->LAZY:Lkotlinx/coroutines/CoroutineStart;
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
move-result v1
const/4 v2, 0x4
aput v2, v0, v1
:try_end_3
.catch Ljava/lang/NoSuchFieldError; {:try_start_3 .. :try_end_3} :catch_3
:catch_3
sput-object v0, Lkotlinx/coroutines/CoroutineStart$WhenMappings;->$EnumSwitchMapping$0:[I
return-void
.end method

View File

@@ -0,0 +1,318 @@
.class public final enum Lkotlinx/coroutines/CoroutineStart;
.super Ljava/lang/Enum;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/CoroutineStart$WhenMappings;
}
.end annotation
# static fields
.field private static final synthetic $VALUES:[Lkotlinx/coroutines/CoroutineStart;
.field public static final enum ATOMIC:Lkotlinx/coroutines/CoroutineStart;
.field public static final enum DEFAULT:Lkotlinx/coroutines/CoroutineStart;
.field public static final enum LAZY:Lkotlinx/coroutines/CoroutineStart;
.field public static final enum UNDISPATCHED:Lkotlinx/coroutines/CoroutineStart;
# direct methods
.method private static final synthetic $values()[Lkotlinx/coroutines/CoroutineStart;
.locals 4
sget-object v0, Lkotlinx/coroutines/CoroutineStart;->DEFAULT:Lkotlinx/coroutines/CoroutineStart;
sget-object v1, Lkotlinx/coroutines/CoroutineStart;->LAZY:Lkotlinx/coroutines/CoroutineStart;
sget-object v2, Lkotlinx/coroutines/CoroutineStart;->ATOMIC:Lkotlinx/coroutines/CoroutineStart;
sget-object v3, Lkotlinx/coroutines/CoroutineStart;->UNDISPATCHED:Lkotlinx/coroutines/CoroutineStart;
filled-new-array {v0, v1, v2, v3}, [Lkotlinx/coroutines/CoroutineStart;
move-result-object v0
return-object v0
.end method
.method static constructor <clinit>()V
.locals 3
.line 37
new-instance v0, Lkotlinx/coroutines/CoroutineStart;
const-string v1, "DEFAULT"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lkotlinx/coroutines/CoroutineStart;-><init>(Ljava/lang/String;I)V
sput-object v0, Lkotlinx/coroutines/CoroutineStart;->DEFAULT:Lkotlinx/coroutines/CoroutineStart;
.line 48
new-instance v0, Lkotlinx/coroutines/CoroutineStart;
const-string v1, "LAZY"
const/4 v2, 0x1
invoke-direct {v0, v1, v2}, Lkotlinx/coroutines/CoroutineStart;-><init>(Ljava/lang/String;I)V
sput-object v0, Lkotlinx/coroutines/CoroutineStart;->LAZY:Lkotlinx/coroutines/CoroutineStart;
.line 57
new-instance v0, Lkotlinx/coroutines/CoroutineStart;
const-string v1, "ATOMIC"
const/4 v2, 0x2
invoke-direct {v0, v1, v2}, Lkotlinx/coroutines/CoroutineStart;-><init>(Ljava/lang/String;I)V
sput-object v0, Lkotlinx/coroutines/CoroutineStart;->ATOMIC:Lkotlinx/coroutines/CoroutineStart;
.line 76
new-instance v0, Lkotlinx/coroutines/CoroutineStart;
const-string v1, "UNDISPATCHED"
const/4 v2, 0x3
invoke-direct {v0, v1, v2}, Lkotlinx/coroutines/CoroutineStart;-><init>(Ljava/lang/String;I)V
sput-object v0, Lkotlinx/coroutines/CoroutineStart;->UNDISPATCHED:Lkotlinx/coroutines/CoroutineStart;
invoke-static {}, Lkotlinx/coroutines/CoroutineStart;->$values()[Lkotlinx/coroutines/CoroutineStart;
move-result-object v0
sput-object v0, Lkotlinx/coroutines/CoroutineStart;->$VALUES:[Lkotlinx/coroutines/CoroutineStart;
return-void
.end method
.method private constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.line 20
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static synthetic isLazy$annotations()V
.locals 0
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Lkotlinx/coroutines/CoroutineStart;
.locals 1
const-class v0, Lkotlinx/coroutines/CoroutineStart;
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Lkotlinx/coroutines/CoroutineStart;
return-object p0
.end method
.method public static values()[Lkotlinx/coroutines/CoroutineStart;
.locals 1
sget-object v0, Lkotlinx/coroutines/CoroutineStart;->$VALUES:[Lkotlinx/coroutines/CoroutineStart;
invoke-virtual {v0}, [Ljava/lang/Object;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lkotlinx/coroutines/CoroutineStart;
return-object v0
.end method
# virtual methods
.method public final invoke(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lkotlin/jvm/functions/Function1;",
"Lkotlin/coroutines/Continuation;",
")V"
}
.end annotation
.line 90
sget-object v0, Lkotlinx/coroutines/CoroutineStart$WhenMappings;->$EnumSwitchMapping$0:[I
invoke-virtual {p0}, Ljava/lang/Enum;->ordinal()I
move-result v1
aget v0, v0, v1
const/4 v1, 0x1
if-eq v0, v1, :cond_3
const/4 v1, 0x2
if-eq v0, v1, :cond_2
const/4 v1, 0x3
if-eq v0, v1, :cond_1
const/4 p1, 0x4
if-ne v0, p1, :cond_0
goto :goto_0
.line 94
:cond_0
new-instance p1, Lkotlin/NoWhenBranchMatchedException;
invoke-direct {p1}, Lkotlin/NoWhenBranchMatchedException;-><init>()V
throw p1
.line 93
:cond_1
invoke-static {p1, p2}, Lkotlinx/coroutines/intrinsics/UndispatchedKt;->startCoroutineUndispatched(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V
goto :goto_0
.line 92
:cond_2
invoke-static {p1, p2}, Lkotlin/coroutines/ContinuationKt;->startCoroutine(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V
goto :goto_0
.line 91
:cond_3
invoke-static {p1, p2}, Lkotlinx/coroutines/intrinsics/CancellableKt;->startCoroutineCancellable(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V
:goto_0
return-void
.end method
.method public final invoke(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V
.locals 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<R:",
"Ljava/lang/Object;",
"T:",
"Ljava/lang/Object;",
">(",
"Lkotlin/jvm/functions/Function2;",
"TR;",
"Lkotlin/coroutines/Continuation;",
")V"
}
.end annotation
.line 109
sget-object v0, Lkotlinx/coroutines/CoroutineStart$WhenMappings;->$EnumSwitchMapping$0:[I
invoke-virtual {p0}, Ljava/lang/Enum;->ordinal()I
move-result v1
aget v0, v0, v1
const/4 v1, 0x1
if-eq v0, v1, :cond_3
const/4 v1, 0x2
if-eq v0, v1, :cond_2
const/4 v1, 0x3
if-eq v0, v1, :cond_1
const/4 p1, 0x4
if-ne v0, p1, :cond_0
goto :goto_0
.line 113
:cond_0
new-instance p1, Lkotlin/NoWhenBranchMatchedException;
invoke-direct {p1}, Lkotlin/NoWhenBranchMatchedException;-><init>()V
throw p1
.line 112
:cond_1
invoke-static {p1, p2, p3}, Lkotlinx/coroutines/intrinsics/UndispatchedKt;->startCoroutineUndispatched(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V
goto :goto_0
.line 111
:cond_2
invoke-static {p1, p2, p3}, Lkotlin/coroutines/ContinuationKt;->startCoroutine(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V
goto :goto_0
:cond_3
const/4 v3, 0x0
const/4 v4, 0x4
const/4 v5, 0x0
move-object v0, p1
move-object v1, p2
move-object v2, p3
.line 110
invoke-static/range {v0 .. v5}, Lkotlinx/coroutines/intrinsics/CancellableKt;->startCoroutineCancellable$default(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
:goto_0
return-void
.end method
.method public final isLazy()Z
.locals 1
sget-object v0, Lkotlinx/coroutines/CoroutineStart;->LAZY:Lkotlinx/coroutines/CoroutineStart;
if-ne p0, v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method

View File

@@ -0,0 +1,14 @@
.class public final Lkotlinx/coroutines/CoroutinesInternalError;
.super Ljava/lang/Error;
.source "SourceFile"
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.locals 0
.line 28
invoke-direct {p0, p1, p2}, Ljava/lang/Error;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method

View File

@@ -0,0 +1,140 @@
.class public abstract Lkotlinx/coroutines/DebugStringsKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final getClassSimpleName(Ljava/lang/Object;)Ljava/lang/String;
.locals 0
.line 21
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static final getHexAddress(Ljava/lang/Object;)Ljava/lang/String;
.locals 0
.line 13
invoke-static {p0}, Ljava/lang/System;->identityHashCode(Ljava/lang/Object;)I
move-result p0
invoke-static {p0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static final toDebugString(Lkotlin/coroutines/Continuation;)Ljava/lang/String;
.locals 3
.line 16
instance-of v0, p0, Lkotlinx/coroutines/internal/DispatchedContinuation;
if-eqz v0, :cond_0
invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p0
goto :goto_2
:cond_0
const/16 v0, 0x40
.line 18
:try_start_0
sget-object v1, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-static {p0}, Lkotlinx/coroutines/DebugStringsKt;->getHexAddress(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v1
sget-object v2, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-static {v1}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;
move-result-object v1
invoke-static {v1}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
:goto_0
invoke-static {v1}, Lkotlin/Result;->exceptionOrNull-impl(Ljava/lang/Object;)Ljava/lang/Throwable;
move-result-object v2
if-nez v2, :cond_1
goto :goto_1
:cond_1
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-static {p0}, Lkotlinx/coroutines/DebugStringsKt;->getHexAddress(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
:goto_1
move-object p0, v1
check-cast p0, Ljava/lang/String;
:goto_2
return-object p0
.end method

View File

@@ -0,0 +1,558 @@
.class public final Lkotlinx/coroutines/DefaultExecutor;
.super Lkotlinx/coroutines/EventLoopImplBase;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# static fields
.field public static final INSTANCE:Lkotlinx/coroutines/DefaultExecutor;
.field public static final KEEP_ALIVE_NANOS:J
.field private static volatile _thread:Ljava/lang/Thread;
.field private static volatile debugStatus:I
# direct methods
.method static constructor <clinit>()V
.locals 4
new-instance v0, Lkotlinx/coroutines/DefaultExecutor;
invoke-direct {v0}, Lkotlinx/coroutines/DefaultExecutor;-><init>()V
sput-object v0, Lkotlinx/coroutines/DefaultExecutor;->INSTANCE:Lkotlinx/coroutines/DefaultExecutor;
const/4 v1, 0x1
const/4 v2, 0x0
const/4 v3, 0x0
.line 33
invoke-static {v0, v3, v1, v2}, Lkotlinx/coroutines/EventLoop;->incrementUseCount$default(Lkotlinx/coroutines/EventLoop;ZILjava/lang/Object;)V
.line 38
sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
const-wide/16 v1, 0x3e8
:try_start_0
const-string v3, "kotlinx.coroutines.DefaultExecutor.keepAlive"
.line 40
invoke-static {v3, v1, v2}, Ljava/lang/Long;->getLong(Ljava/lang/String;J)Ljava/lang/Long;
move-result-object v1
:try_end_0
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
.line 42
:catch_0
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
:goto_0
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v1
.line 38
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide v0
sput-wide v0, Lkotlinx/coroutines/DefaultExecutor;->KEEP_ALIVE_NANOS:J
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 29
invoke-direct {p0}, Lkotlinx/coroutines/EventLoopImplBase;-><init>()V
return-void
.end method
# virtual methods
.method public final declared-synchronized acknowledgeShutdownIfNeeded()V
.locals 1
monitor-enter p0
.line 178
:try_start_0
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->isShutdownRequested()Z
move-result v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez v0, :cond_0
monitor-exit p0
return-void
:cond_0
const/4 v0, 0x3
:try_start_1
sput v0, Lkotlinx/coroutines/DefaultExecutor;->debugStatus:I
.line 180
invoke-virtual {p0}, Lkotlinx/coroutines/EventLoopImplBase;->resetAll()V
const-string v0, "null cannot be cast to non-null type java.lang.Object"
.line 181
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 182
monitor-exit p0
return-void
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public final declared-synchronized createThreadSync()Ljava/lang/Thread;
.locals 2
monitor-enter p0
:try_start_0
sget-object v0, Lkotlinx/coroutines/DefaultExecutor;->_thread:Ljava/lang/Thread;
if-nez v0, :cond_0
.line 136
new-instance v0, Ljava/lang/Thread;
const-string v1, "kotlinx.coroutines.DefaultExecutor"
invoke-direct {v0, p0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V
sput-object v0, Lkotlinx/coroutines/DefaultExecutor;->_thread:Ljava/lang/Thread;
const/4 v1, 0x1
.line 138
invoke-virtual {v0, v1}, Ljava/lang/Thread;->setDaemon(Z)V
.line 139
invoke-virtual {v0}, Ljava/lang/Thread;->start()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v0
goto :goto_1
.line 136
:cond_0
:goto_0
monitor-exit p0
return-object v0
:goto_1
monitor-exit p0
throw v0
.end method
.method public enqueue(Ljava/lang/Runnable;)V
.locals 1
.line 69
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->isShutDown()Z
move-result v0
if-eqz v0, :cond_0
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->shutdownError()V
.line 70
:cond_0
invoke-super {p0, p1}, Lkotlinx/coroutines/EventLoopImplBase;->enqueue(Ljava/lang/Runnable;)V
return-void
.end method
.method public getThread()Ljava/lang/Thread;
.locals 1
sget-object v0, Lkotlinx/coroutines/DefaultExecutor;->_thread:Ljava/lang/Thread;
if-nez v0, :cond_0
.line 50
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->createThreadSync()Ljava/lang/Thread;
move-result-object v0
:cond_0
return-object v0
.end method
.method public invokeOnTimeout(JLjava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/DisposableHandle;
.locals 0
.line 99
invoke-virtual {p0, p1, p2, p3}, Lkotlinx/coroutines/EventLoopImplBase;->scheduleInvokeOnTimeout(JLjava/lang/Runnable;)Lkotlinx/coroutines/DisposableHandle;
move-result-object p1
return-object p1
.end method
.method public final isShutDown()Z
.locals 2
sget v0, Lkotlinx/coroutines/DefaultExecutor;->debugStatus:I
const/4 v1, 0x4
if-ne v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public final isShutdownRequested()Z
.locals 2
sget v0, Lkotlinx/coroutines/DefaultExecutor;->debugStatus:I
const/4 v1, 0x2
if-eq v0, v1, :cond_1
const/4 v1, 0x3
if-ne v0, v1, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 v0, 0x1
:goto_1
return v0
.end method
.method public final declared-synchronized notifyStartup()Z
.locals 2
monitor-enter p0
.line 155
:try_start_0
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->isShutdownRequested()Z
move-result v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz v0, :cond_0
monitor-exit p0
const/4 v0, 0x0
return v0
:cond_0
const/4 v0, 0x1
:try_start_1
sput v0, Lkotlinx/coroutines/DefaultExecutor;->debugStatus:I
const-string v1, "null cannot be cast to non-null type java.lang.Object"
.line 157
invoke-static {p0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 158
monitor-exit p0
return v0
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public reschedule(JLkotlinx/coroutines/EventLoopImplBase$DelayedTask;)V
.locals 0
.line 75
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->shutdownError()V
return-void
.end method
.method public run()V
.locals 12
.line 102
sget-object v0, Lkotlinx/coroutines/ThreadLocalEventLoop;->INSTANCE:Lkotlinx/coroutines/ThreadLocalEventLoop;
invoke-virtual {v0, p0}, Lkotlinx/coroutines/ThreadLocalEventLoop;->setEventLoop$kotlinx_coroutines_core(Lkotlinx/coroutines/EventLoop;)V
.line 103
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
const/4 v0, 0x0
.line 106
:try_start_0
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->notifyStartup()Z
move-result v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez v1, :cond_1
sput-object v0, Lkotlinx/coroutines/DefaultExecutor;->_thread:Ljava/lang/Thread;
.line 127
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->acknowledgeShutdownIfNeeded()V
.line 128
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
.line 130
invoke-virtual {p0}, Lkotlinx/coroutines/EventLoopImplBase;->isEmpty()Z
move-result v0
if-nez v0, :cond_0
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->getThread()Ljava/lang/Thread;
:cond_0
return-void
:cond_1
const-wide v1, 0x7fffffffffffffffL
move-wide v3, v1
.line 108
:cond_2
:goto_0
:try_start_1
invoke-static {}, Ljava/lang/Thread;->interrupted()Z
.line 109
invoke-virtual {p0}, Lkotlinx/coroutines/EventLoopImplBase;->processNextEvent()J
move-result-wide v5
cmp-long v7, v5, v1
const-wide/16 v8, 0x0
if-nez v7, :cond_6
.line 112
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v10
cmp-long v7, v3, v1
if-nez v7, :cond_3
sget-wide v3, Lkotlinx/coroutines/DefaultExecutor;->KEEP_ALIVE_NANOS:J
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
add-long/2addr v3, v10
goto :goto_1
:catchall_0
move-exception v1
goto :goto_3
:cond_3
:goto_1
sub-long v10, v3, v10
cmp-long v7, v10, v8
if-gtz v7, :cond_5
sput-object v0, Lkotlinx/coroutines/DefaultExecutor;->_thread:Ljava/lang/Thread;
.line 127
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->acknowledgeShutdownIfNeeded()V
.line 128
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
.line 130
invoke-virtual {p0}, Lkotlinx/coroutines/EventLoopImplBase;->isEmpty()Z
move-result v0
if-nez v0, :cond_4
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->getThread()Ljava/lang/Thread;
:cond_4
return-void
.line 116
:cond_5
:try_start_2
invoke-static {v5, v6, v10, v11}, Lkotlin/ranges/RangesKt;->coerceAtMost(JJ)J
move-result-wide v5
goto :goto_2
:cond_6
move-wide v3, v1
:goto_2
cmp-long v7, v5, v8
if-lez v7, :cond_2
.line 121
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->isShutdownRequested()Z
move-result v7
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
if-eqz v7, :cond_8
sput-object v0, Lkotlinx/coroutines/DefaultExecutor;->_thread:Ljava/lang/Thread;
.line 127
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->acknowledgeShutdownIfNeeded()V
.line 128
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
.line 130
invoke-virtual {p0}, Lkotlinx/coroutines/EventLoopImplBase;->isEmpty()Z
move-result v0
if-nez v0, :cond_7
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->getThread()Ljava/lang/Thread;
:cond_7
return-void
.line 122
:cond_8
:try_start_3
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
invoke-static {p0, v5, v6}, Ljava/util/concurrent/locks/LockSupport;->parkNanos(Ljava/lang/Object;J)V
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
goto :goto_0
:goto_3
sput-object v0, Lkotlinx/coroutines/DefaultExecutor;->_thread:Ljava/lang/Thread;
.line 127
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->acknowledgeShutdownIfNeeded()V
.line 128
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
.line 130
invoke-virtual {p0}, Lkotlinx/coroutines/EventLoopImplBase;->isEmpty()Z
move-result v0
if-nez v0, :cond_9
invoke-virtual {p0}, Lkotlinx/coroutines/DefaultExecutor;->getThread()Ljava/lang/Thread;
:cond_9
throw v1
.end method
.method public shutdown()V
.locals 1
const/4 v0, 0x4
sput v0, Lkotlinx/coroutines/DefaultExecutor;->debugStatus:I
.line 86
invoke-super {p0}, Lkotlinx/coroutines/EventLoopImplBase;->shutdown()V
return-void
.end method
.method public final shutdownError()V
.locals 2
.line 79
new-instance v0, Ljava/util/concurrent/RejectedExecutionException;
const-string v1, "DefaultExecutor was shut down. This error indicates that Dispatchers.shutdown() was invoked prior to completion of exiting coroutines, leaving coroutines in incomplete state. Please refer to Dispatchers.shutdown documentation for more details"
invoke-direct {v0, v1}, Ljava/util/concurrent/RejectedExecutionException;-><init>(Ljava/lang/String;)V
throw v0
.end method

View File

@@ -0,0 +1,87 @@
.class public abstract Lkotlinx/coroutines/DefaultExecutorKt;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final DefaultDelay:Lkotlinx/coroutines/Delay;
.field public static final defaultMainDelayOptIn:Z
# direct methods
.method static constructor <clinit>()V
.locals 2
const-string v0, "kotlinx.coroutines.main.delay"
const/4 v1, 0x0
.line 11
invoke-static {v0, v1}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;Z)Z
move-result v0
sput-boolean v0, Lkotlinx/coroutines/DefaultExecutorKt;->defaultMainDelayOptIn:Z
.line 14
invoke-static {}, Lkotlinx/coroutines/DefaultExecutorKt;->initializeDefaultDelay()Lkotlinx/coroutines/Delay;
move-result-object v0
sput-object v0, Lkotlinx/coroutines/DefaultExecutorKt;->DefaultDelay:Lkotlinx/coroutines/Delay;
return-void
.end method
.method public static final getDefaultDelay()Lkotlinx/coroutines/Delay;
.locals 1
sget-object v0, Lkotlinx/coroutines/DefaultExecutorKt;->DefaultDelay:Lkotlinx/coroutines/Delay;
return-object v0
.end method
.method public static final initializeDefaultDelay()Lkotlinx/coroutines/Delay;
.locals 2
sget-boolean v0, Lkotlinx/coroutines/DefaultExecutorKt;->defaultMainDelayOptIn:Z
if-nez v0, :cond_0
.line 18
sget-object v0, Lkotlinx/coroutines/DefaultExecutor;->INSTANCE:Lkotlinx/coroutines/DefaultExecutor;
return-object v0
.line 19
:cond_0
invoke-static {}, Lkotlinx/coroutines/Dispatchers;->getMain()Lkotlinx/coroutines/MainCoroutineDispatcher;
move-result-object v0
.line 25
invoke-static {v0}, Lkotlinx/coroutines/internal/MainDispatchersKt;->isMissing(Lkotlinx/coroutines/MainCoroutineDispatcher;)Z
move-result v1
if-nez v1, :cond_2
instance-of v1, v0, Lkotlinx/coroutines/Delay;
if-nez v1, :cond_1
goto :goto_0
:cond_1
check-cast v0, Lkotlinx/coroutines/Delay;
goto :goto_1
:cond_2
:goto_0
sget-object v0, Lkotlinx/coroutines/DefaultExecutor;->INSTANCE:Lkotlinx/coroutines/DefaultExecutor;
:goto_1
return-object v0
.end method

View File

@@ -0,0 +1,14 @@
.class public interface abstract Lkotlinx/coroutines/Deferred;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Job;
# virtual methods
.method public abstract await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.end method
.method public abstract getCompleted()Ljava/lang/Object;
.end method

View File

@@ -0,0 +1,55 @@
.class public Lkotlinx/coroutines/DeferredCoroutine;
.super Lkotlinx/coroutines/AbstractCoroutine;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Deferred;
# direct methods
.method public constructor <init>(Lkotlin/coroutines/CoroutineContext;Z)V
.locals 1
const/4 v0, 0x1
.line 99
invoke-direct {p0, p1, v0, p2}, Lkotlinx/coroutines/AbstractCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;ZZ)V
return-void
.end method
.method public static synthetic await$suspendImpl(Lkotlinx/coroutines/DeferredCoroutine;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 0
.line 101
invoke-virtual {p0, p1}, Lkotlinx/coroutines/JobSupport;->awaitInternal(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
move-result-object p0
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
return-object p0
.end method
# virtual methods
.method public await(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 0
invoke-static {p0, p1}, Lkotlinx/coroutines/DeferredCoroutine;->await$suspendImpl(Lkotlinx/coroutines/DeferredCoroutine;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public getCompleted()Ljava/lang/Object;
.locals 1
.line 100
invoke-virtual {p0}, Lkotlinx/coroutines/JobSupport;->getCompletedInternal$kotlinx_coroutines_core()Ljava/lang/Object;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,31 @@
.class public abstract Lkotlinx/coroutines/Delay$DefaultImpls;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/Delay;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DefaultImpls"
.end annotation
# direct methods
.method public static invokeOnTimeout(Lkotlinx/coroutines/Delay;JLjava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/DisposableHandle;
.locals 0
.line 56
invoke-static {}, Lkotlinx/coroutines/DefaultExecutorKt;->getDefaultDelay()Lkotlinx/coroutines/Delay;
move-result-object p0
invoke-interface {p0, p1, p2, p3, p4}, Lkotlinx/coroutines/Delay;->invokeOnTimeout(JLjava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/DisposableHandle;
move-result-object p0
return-object p0
.end method

View File

@@ -0,0 +1,19 @@
.class public interface abstract Lkotlinx/coroutines/Delay;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/Delay$DefaultImpls;
}
.end annotation
# virtual methods
.method public abstract invokeOnTimeout(JLjava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/DisposableHandle;
.end method
.method public abstract scheduleResumeAfterDelay(JLkotlinx/coroutines/CancellableContinuation;)V
.end method

View File

@@ -0,0 +1,52 @@
.class public final Lkotlinx/coroutines/DelayKt$awaitCancellation$1;
.super Lkotlin/coroutines/jvm/internal/ContinuationImpl;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lkotlinx/coroutines/DelayKt;->awaitCancellation(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = null
.end annotation
# instance fields
.field public label:I
.field public synthetic result:Ljava/lang/Object;
# direct methods
.method public constructor <init>(Lkotlin/coroutines/Continuation;)V
.locals 0
invoke-direct {p0, p1}, Lkotlin/coroutines/jvm/internal/ContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;)V
return-void
.end method
# virtual methods
.method public final invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
.locals 1
iput-object p1, p0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;->result:Ljava/lang/Object;
iget p1, p0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;->label:I
const/high16 v0, -0x80000000
or-int/2addr p1, v0
iput p1, p0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;->label:I
invoke-static {p0}, Lkotlinx/coroutines/DelayKt;->awaitCancellation(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,220 @@
.class public abstract Lkotlinx/coroutines/DelayKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final awaitCancellation(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 4
instance-of v0, p0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;
if-eqz v0, :cond_0
move-object v0, p0
check-cast v0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;
iget v1, v0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;->label:I
const/high16 v2, -0x80000000
and-int v3, v1, v2
if-eqz v3, :cond_0
sub-int/2addr v1, v2
iput v1, v0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;->label:I
goto :goto_0
:cond_0
new-instance v0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;
invoke-direct {v0, p0}, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;-><init>(Lkotlin/coroutines/Continuation;)V
:goto_0
iget-object p0, v0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;->result:Ljava/lang/Object;
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
move-result-object v1
.line 106
iget v2, v0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;->label:I
const/4 v3, 0x1
if-eqz v2, :cond_2
if-eq v2, v3, :cond_1
new-instance p0, Ljava/lang/IllegalStateException;
const-string v0, "call to \'resume\' before \'invoke\' with coroutine"
invoke-direct {p0, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p0
:cond_1
invoke-static {p0}, Lkotlin/ResultKt;->throwOnFailure(Ljava/lang/Object;)V
goto :goto_1
:cond_2
invoke-static {p0}, Lkotlin/ResultKt;->throwOnFailure(Ljava/lang/Object;)V
.line 314
iput v3, v0, Lkotlinx/coroutines/DelayKt$awaitCancellation$1;->label:I
.line 315
new-instance p0, Lkotlinx/coroutines/CancellableContinuationImpl;
invoke-static {v0}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->intercepted(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
move-result-object v2
invoke-direct {p0, v2, v3}, Lkotlinx/coroutines/CancellableContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;I)V
.line 321
invoke-virtual {p0}, Lkotlinx/coroutines/CancellableContinuationImpl;->initCancellability()V
.line 323
invoke-virtual {p0}, Lkotlinx/coroutines/CancellableContinuationImpl;->getResult()Ljava/lang/Object;
move-result-object p0
.line 314
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
move-result-object v2
if-ne p0, v2, :cond_3
invoke-static {v0}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V
:cond_3
if-ne p0, v1, :cond_4
return-object v1
.line 106
:cond_4
:goto_1
new-instance p0, Lkotlin/KotlinNothingValueException;
invoke-direct {p0}, Lkotlin/KotlinNothingValueException;-><init>()V
throw p0
.end method
.method public static final delay(JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
.locals 3
const-wide/16 v0, 0x0
cmp-long v0, p0, v0
if-gtz v0, :cond_0
.line 126
sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p0
.line 315
:cond_0
new-instance v0, Lkotlinx/coroutines/CancellableContinuationImpl;
invoke-static {p2}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->intercepted(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
move-result-object v1
const/4 v2, 0x1
invoke-direct {v0, v1, v2}, Lkotlinx/coroutines/CancellableContinuationImpl;-><init>(Lkotlin/coroutines/Continuation;I)V
.line 321
invoke-virtual {v0}, Lkotlinx/coroutines/CancellableContinuationImpl;->initCancellability()V
const-wide v1, 0x7fffffffffffffffL
cmp-long v1, p0, v1
if-gez v1, :cond_1
.line 130
invoke-interface {v0}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v1
invoke-static {v1}, Lkotlinx/coroutines/DelayKt;->getDelay(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Delay;
move-result-object v1
invoke-interface {v1, p0, p1, v0}, Lkotlinx/coroutines/Delay;->scheduleResumeAfterDelay(JLkotlinx/coroutines/CancellableContinuation;)V
.line 323
:cond_1
invoke-virtual {v0}, Lkotlinx/coroutines/CancellableContinuationImpl;->getResult()Ljava/lang/Object;
move-result-object p0
.line 314
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
move-result-object p1
if-ne p0, p1, :cond_2
invoke-static {p2}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V
:cond_2
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
move-result-object p1
if-ne p0, p1, :cond_3
return-object p0
.line 324
:cond_3
sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p0
.end method
.method public static final getDelay(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Delay;
.locals 1
.line 154
sget-object v0, Lkotlin/coroutines/ContinuationInterceptor;->Key:Lkotlin/coroutines/ContinuationInterceptor$Key;
invoke-interface {p0, v0}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object p0
instance-of v0, p0, Lkotlinx/coroutines/Delay;
if-eqz v0, :cond_0
check-cast p0, Lkotlinx/coroutines/Delay;
goto :goto_0
:cond_0
const/4 p0, 0x0
:goto_0
if-nez p0, :cond_1
invoke-static {}, Lkotlinx/coroutines/DefaultExecutorKt;->getDefaultDelay()Lkotlinx/coroutines/Delay;
move-result-object p0
:cond_1
return-object p0
.end method

View File

@@ -0,0 +1,225 @@
.class public final Lkotlinx/coroutines/DispatchedCoroutine;
.super Lkotlinx/coroutines/internal/ScopeCoroutine;
.source "SourceFile"
# static fields
.field public static final _decision$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
# instance fields
.field private volatile _decision:I
# direct methods
.method static constructor <clinit>()V
.locals 2
const-class v0, Lkotlinx/coroutines/DispatchedCoroutine;
const-string v1, "_decision"
invoke-static {v0, v1}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
move-result-object v0
sput-object v0, Lkotlinx/coroutines/DispatchedCoroutine;->_decision$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return-void
.end method
.method public constructor <init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V
.locals 0
.line 225
invoke-direct {p0, p1, p2}, Lkotlinx/coroutines/internal/ScopeCoroutine;-><init>(Lkotlin/coroutines/CoroutineContext;Lkotlin/coroutines/Continuation;)V
return-void
.end method
.method private final tryResume()Z
.locals 5
sget-object v0, Lkotlinx/coroutines/DispatchedCoroutine;->_decision$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
:cond_0
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->get(Ljava/lang/Object;)I
move-result v1
const/4 v2, 0x0
const/4 v3, 0x1
if-eqz v1, :cond_2
if-ne v1, v3, :cond_1
return v2
.line 246
:cond_1
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Already resumed"
.line 247
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_2
sget-object v1, Lkotlinx/coroutines/DispatchedCoroutine;->_decision$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
const/4 v4, 0x2
.line 245
invoke-virtual {v1, p0, v2, v4}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->compareAndSet(Ljava/lang/Object;II)Z
move-result v1
if-eqz v1, :cond_0
return v3
.end method
.method private final trySuspend()Z
.locals 4
sget-object v0, Lkotlinx/coroutines/DispatchedCoroutine;->_decision$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
:cond_0
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->get(Ljava/lang/Object;)I
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_2
const/4 v0, 0x2
if-ne v1, v0, :cond_1
return v2
.line 236
:cond_1
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Already suspended"
.line 237
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_2
sget-object v1, Lkotlinx/coroutines/DispatchedCoroutine;->_decision$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
const/4 v3, 0x1
.line 235
invoke-virtual {v1, p0, v2, v3}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->compareAndSet(Ljava/lang/Object;II)Z
move-result v1
if-eqz v1, :cond_0
return v3
.end method
# virtual methods
.method public afterCompletion(Ljava/lang/Object;)V
.locals 0
.line 255
invoke-virtual {p0, p1}, Lkotlinx/coroutines/DispatchedCoroutine;->afterResume(Ljava/lang/Object;)V
return-void
.end method
.method public afterResume(Ljava/lang/Object;)V
.locals 3
.line 259
invoke-direct {p0}, Lkotlinx/coroutines/DispatchedCoroutine;->tryResume()Z
move-result v0
if-eqz v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Lkotlinx/coroutines/internal/ScopeCoroutine;->uCont:Lkotlin/coroutines/Continuation;
.line 261
invoke-static {v0}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->intercepted(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
move-result-object v0
iget-object v1, p0, Lkotlinx/coroutines/internal/ScopeCoroutine;->uCont:Lkotlin/coroutines/Continuation;
invoke-static {p1, v1}, Lkotlinx/coroutines/CompletionStateKt;->recoverResult(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
move-result-object p1
const/4 v1, 0x2
const/4 v2, 0x0
invoke-static {v0, p1, v2, v1, v2}, Lkotlinx/coroutines/internal/DispatchedContinuationKt;->resumeCancellableWith$default(Lkotlin/coroutines/Continuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
return-void
.end method
.method public final getResult$kotlinx_coroutines_core()Ljava/lang/Object;
.locals 2
.line 265
invoke-direct {p0}, Lkotlinx/coroutines/DispatchedCoroutine;->trySuspend()Z
move-result v0
if-eqz v0, :cond_0
invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object;
move-result-object v0
return-object v0
.line 267
:cond_0
invoke-virtual {p0}, Lkotlinx/coroutines/JobSupport;->getState$kotlinx_coroutines_core()Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lkotlinx/coroutines/JobSupportKt;->unboxState(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 268
instance-of v1, v0, Lkotlinx/coroutines/CompletedExceptionally;
if-nez v1, :cond_1
return-object v0
:cond_1
check-cast v0, Lkotlinx/coroutines/CompletedExceptionally;
iget-object v0, v0, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable;
throw v0
.end method

View File

@@ -0,0 +1,417 @@
.class public abstract Lkotlinx/coroutines/DispatchedTask;
.super Lkotlinx/coroutines/scheduling/Task;
.source "SourceFile"
# instance fields
.field public resumeMode:I
# direct methods
.method public constructor <init>(I)V
.locals 0
.line 54
invoke-direct {p0}, Lkotlinx/coroutines/scheduling/Task;-><init>()V
iput p1, p0, Lkotlinx/coroutines/DispatchedTask;->resumeMode:I
return-void
.end method
# virtual methods
.method public abstract cancelCompletedResult$kotlinx_coroutines_core(Ljava/lang/Object;Ljava/lang/Throwable;)V
.end method
.method public abstract getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;
.end method
.method public getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable;
.locals 2
.line 81
instance-of v0, p1, Lkotlinx/coroutines/CompletedExceptionally;
const/4 v1, 0x0
if-eqz v0, :cond_0
check-cast p1, Lkotlinx/coroutines/CompletedExceptionally;
goto :goto_0
:cond_0
move-object p1, v1
:goto_0
if-eqz p1, :cond_1
iget-object v1, p1, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable;
:cond_1
return-object v1
.end method
.method public getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
return-object p1
.end method
.method public final handleFatalException$kotlinx_coroutines_core(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
.locals 2
if-nez p1, :cond_0
if-nez p2, :cond_0
return-void
:cond_0
if-eqz p1, :cond_1
if-eqz p2, :cond_1
.line 75
invoke-static {p1, p2}, Lkotlin/ExceptionsKt;->addSuppressed(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
:cond_1
if-nez p1, :cond_2
move-object p1, p2
.line 146
:cond_2
new-instance p2, Lkotlinx/coroutines/CoroutinesInternalError;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Fatal exception in coroutines machinery for "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ". Please read KDoc to \'handleFatalException\' method and report this incident to maintainers"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 147
invoke-static {p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V
.line 146
invoke-direct {p2, v0, p1}, Lkotlinx/coroutines/CoroutinesInternalError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 148
invoke-virtual {p0}, Lkotlinx/coroutines/DispatchedTask;->getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;
move-result-object p1
invoke-interface {p1}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object p1
invoke-static {p1, p2}, Lkotlinx/coroutines/CoroutineExceptionHandlerKt;->handleCoroutineException(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Throwable;)V
return-void
.end method
.method public final run()V
.locals 10
iget-object v0, p0, Lkotlinx/coroutines/scheduling/Task;->taskContext:Lkotlinx/coroutines/scheduling/TaskContext;
.line 88
:try_start_0
invoke-virtual {p0}, Lkotlinx/coroutines/DispatchedTask;->getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;
move-result-object v1
const-string v2, "null cannot be cast to non-null type kotlinx.coroutines.internal.DispatchedContinuation<T of kotlinx.coroutines.DispatchedTask>"
invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
check-cast v1, Lkotlinx/coroutines/internal/DispatchedContinuation;
.line 89
iget-object v2, v1, Lkotlinx/coroutines/internal/DispatchedContinuation;->continuation:Lkotlin/coroutines/Continuation;
.line 90
iget-object v1, v1, Lkotlinx/coroutines/internal/DispatchedContinuation;->countOrElement:Ljava/lang/Object;
.line 107
invoke-interface {v2}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v3
.line 108
invoke-static {v3, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->updateThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
.line 109
sget-object v4, Lkotlinx/coroutines/internal/ThreadContextKt;->NO_THREAD_ELEMENTS:Lkotlinx/coroutines/internal/Symbol;
const/4 v5, 0x0
if-eq v1, v4, :cond_0
.line 111
invoke-static {v2, v3, v1}, Lkotlinx/coroutines/CoroutineContextKt;->updateUndispatchedCompletion(Lkotlin/coroutines/Continuation;Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Lkotlinx/coroutines/UndispatchedCoroutine;
move-result-object v4
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v1
goto/16 :goto_5
:cond_0
move-object v4, v5
.line 91
:goto_0
:try_start_1
invoke-interface {v2}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v6
.line 92
invoke-virtual {p0}, Lkotlinx/coroutines/DispatchedTask;->takeState$kotlinx_coroutines_core()Ljava/lang/Object;
move-result-object v7
.line 93
invoke-virtual {p0, v7}, Lkotlinx/coroutines/DispatchedTask;->getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable;
move-result-object v8
if-nez v8, :cond_1
iget v9, p0, Lkotlinx/coroutines/DispatchedTask;->resumeMode:I
.line 99
invoke-static {v9}, Lkotlinx/coroutines/DispatchedTaskKt;->isCancellableMode(I)Z
move-result v9
if-eqz v9, :cond_1
sget-object v9, Lkotlinx/coroutines/Job;->Key:Lkotlinx/coroutines/Job$Key;
invoke-interface {v6, v9}, Lkotlin/coroutines/CoroutineContext;->get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object v6
check-cast v6, Lkotlinx/coroutines/Job;
goto :goto_1
:catchall_1
move-exception v2
goto :goto_4
:cond_1
move-object v6, v5
:goto_1
if-eqz v6, :cond_2
.line 100
invoke-interface {v6}, Lkotlinx/coroutines/Job;->isActive()Z
move-result v9
if-nez v9, :cond_2
.line 101
invoke-interface {v6}, Lkotlinx/coroutines/Job;->getCancellationException()Ljava/util/concurrent/CancellationException;
move-result-object v6
.line 102
invoke-virtual {p0, v7, v6}, Lkotlinx/coroutines/DispatchedTask;->cancelCompletedResult$kotlinx_coroutines_core(Ljava/lang/Object;Ljava/lang/Throwable;)V
.line 220
sget-object v7, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-static {v6}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;
move-result-object v6
invoke-static {v6}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
invoke-interface {v2, v6}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V
goto :goto_2
:cond_2
if-eqz v8, :cond_3
.line 106
sget-object v6, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-static {v8}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;
move-result-object v6
invoke-static {v6}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
invoke-interface {v2, v6}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V
goto :goto_2
.line 108
:cond_3
sget-object v6, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-virtual {p0, v7}, Lkotlinx/coroutines/DispatchedTask;->getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
invoke-static {v6}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
invoke-interface {v2, v6}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V
.line 111
:goto_2
sget-object v2, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
if-eqz v4, :cond_4
.line 118
:try_start_2
invoke-virtual {v4}, Lkotlinx/coroutines/UndispatchedCoroutine;->clearThreadContext()Z
move-result v2
if-eqz v2, :cond_5
.line 119
:cond_4
invoke-static {v3, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
.line 116
:cond_5
:try_start_3
invoke-interface {v0}, Lkotlinx/coroutines/scheduling/TaskContext;->afterTask()V
sget-object v0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
invoke-static {v0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_2
goto :goto_3
:catchall_2
move-exception v0
sget-object v1, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-static {v0}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 117
:goto_3
invoke-static {v0}, Lkotlin/Result;->exceptionOrNull-impl(Ljava/lang/Object;)Ljava/lang/Throwable;
move-result-object v0
invoke-virtual {p0, v5, v0}, Lkotlinx/coroutines/DispatchedTask;->handleFatalException$kotlinx_coroutines_core(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
goto :goto_7
:goto_4
if-eqz v4, :cond_6
.line 118
:try_start_4
invoke-virtual {v4}, Lkotlinx/coroutines/UndispatchedCoroutine;->clearThreadContext()Z
move-result v4
if-eqz v4, :cond_7
.line 119
:cond_6
invoke-static {v3, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
:cond_7
throw v2
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_0
.line 116
:goto_5
:try_start_5
sget-object v2, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-interface {v0}, Lkotlinx/coroutines/scheduling/TaskContext;->afterTask()V
sget-object v0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
invoke-static {v0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
:try_end_5
.catchall {:try_start_5 .. :try_end_5} :catchall_3
goto :goto_6
:catchall_3
move-exception v0
sget-object v2, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-static {v0}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 117
:goto_6
invoke-static {v0}, Lkotlin/Result;->exceptionOrNull-impl(Ljava/lang/Object;)Ljava/lang/Throwable;
move-result-object v0
invoke-virtual {p0, v1, v0}, Lkotlinx/coroutines/DispatchedTask;->handleFatalException$kotlinx_coroutines_core(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
:goto_7
return-void
.end method
.method public abstract takeState$kotlinx_coroutines_core()Ljava/lang/Object;
.end method

View File

@@ -0,0 +1,331 @@
.class public abstract Lkotlinx/coroutines/DispatchedTaskKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final dispatch(Lkotlinx/coroutines/DispatchedTask;I)V
.locals 3
.line 154
invoke-virtual {p0}, Lkotlinx/coroutines/DispatchedTask;->getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;
move-result-object v0
const/4 v1, 0x4
if-ne p1, v1, :cond_0
const/4 v1, 0x1
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
if-nez v1, :cond_2
.line 156
instance-of v2, v0, Lkotlinx/coroutines/internal/DispatchedContinuation;
if-eqz v2, :cond_2
invoke-static {p1}, Lkotlinx/coroutines/DispatchedTaskKt;->isCancellableMode(I)Z
move-result p1
iget v2, p0, Lkotlinx/coroutines/DispatchedTask;->resumeMode:I
invoke-static {v2}, Lkotlinx/coroutines/DispatchedTaskKt;->isCancellableMode(I)Z
move-result v2
if-ne p1, v2, :cond_2
.line 158
move-object p1, v0
check-cast p1, Lkotlinx/coroutines/internal/DispatchedContinuation;
iget-object p1, p1, Lkotlinx/coroutines/internal/DispatchedContinuation;->dispatcher:Lkotlinx/coroutines/CoroutineDispatcher;
.line 159
invoke-interface {v0}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v0
.line 160
invoke-virtual {p1, v0}, Lkotlinx/coroutines/CoroutineDispatcher;->isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z
move-result v1
if-eqz v1, :cond_1
.line 161
invoke-virtual {p1, v0, p0}, Lkotlinx/coroutines/CoroutineDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V
goto :goto_1
.line 163
:cond_1
invoke-static {p0}, Lkotlinx/coroutines/DispatchedTaskKt;->resumeUnconfined(Lkotlinx/coroutines/DispatchedTask;)V
goto :goto_1
.line 168
:cond_2
invoke-static {p0, v0, v1}, Lkotlinx/coroutines/DispatchedTaskKt;->resume(Lkotlinx/coroutines/DispatchedTask;Lkotlin/coroutines/Continuation;Z)V
:goto_1
return-void
.end method
.method public static final isCancellableMode(I)Z
.locals 2
const/4 v0, 0x1
if-eq p0, v0, :cond_1
const/4 v1, 0x2
if-ne p0, v1, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
:cond_1
:goto_0
return v0
.end method
.method public static final isReusableMode(I)Z
.locals 1
const/4 v0, 0x2
if-ne p0, v0, :cond_0
const/4 p0, 0x1
goto :goto_0
:cond_0
const/4 p0, 0x0
:goto_0
return p0
.end method
.method public static final resume(Lkotlinx/coroutines/DispatchedTask;Lkotlin/coroutines/Continuation;Z)V
.locals 3
.line 174
invoke-virtual {p0}, Lkotlinx/coroutines/DispatchedTask;->takeState$kotlinx_coroutines_core()Ljava/lang/Object;
move-result-object v0
.line 175
invoke-virtual {p0, v0}, Lkotlinx/coroutines/DispatchedTask;->getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable;
move-result-object v1
if-eqz v1, :cond_0
.line 176
sget-object p0, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-static {v1}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object;
move-result-object p0
:goto_0
invoke-static {p0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
goto :goto_1
:cond_0
sget-object v1, Lkotlin/Result;->Companion:Lkotlin/Result$Companion;
invoke-virtual {p0, v0}, Lkotlinx/coroutines/DispatchedTask;->getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
goto :goto_0
:goto_1
if-eqz p2, :cond_5
const-string p2, "null cannot be cast to non-null type kotlinx.coroutines.internal.DispatchedContinuation<T of kotlinx.coroutines.DispatchedTaskKt.resume>"
.line 178
invoke-static {p1, p2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
check-cast p1, Lkotlinx/coroutines/internal/DispatchedContinuation;
.line 255
iget-object p2, p1, Lkotlinx/coroutines/internal/DispatchedContinuation;->continuation:Lkotlin/coroutines/Continuation;
iget-object v0, p1, Lkotlinx/coroutines/internal/DispatchedContinuation;->countOrElement:Ljava/lang/Object;
.line 107
invoke-interface {p2}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v1
.line 108
invoke-static {v1, v0}, Lkotlinx/coroutines/internal/ThreadContextKt;->updateThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 109
sget-object v2, Lkotlinx/coroutines/internal/ThreadContextKt;->NO_THREAD_ELEMENTS:Lkotlinx/coroutines/internal/Symbol;
if-eq v0, v2, :cond_1
.line 111
invoke-static {p2, v1, v0}, Lkotlinx/coroutines/CoroutineContextKt;->updateUndispatchedCompletion(Lkotlin/coroutines/Continuation;Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Lkotlinx/coroutines/UndispatchedCoroutine;
move-result-object p2
goto :goto_2
:cond_1
const/4 p2, 0x0
.line 256
:goto_2
:try_start_0
iget-object p1, p1, Lkotlinx/coroutines/internal/DispatchedContinuation;->continuation:Lkotlin/coroutines/Continuation;
invoke-interface {p1, p0}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V
.line 257
sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz p2, :cond_2
.line 118
invoke-virtual {p2}, Lkotlinx/coroutines/UndispatchedCoroutine;->clearThreadContext()Z
move-result p0
if-eqz p0, :cond_6
.line 119
:cond_2
invoke-static {v1, v0}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
goto :goto_3
:catchall_0
move-exception p0
if-eqz p2, :cond_3
.line 118
invoke-virtual {p2}, Lkotlinx/coroutines/UndispatchedCoroutine;->clearThreadContext()Z
move-result p1
if-eqz p1, :cond_4
.line 119
:cond_3
invoke-static {v1, v0}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V
:cond_4
throw p0
.line 179
:cond_5
invoke-interface {p1, p0}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V
:cond_6
:goto_3
return-void
.end method
.method public static final resumeUnconfined(Lkotlinx/coroutines/DispatchedTask;)V
.locals 4
.line 184
sget-object v0, Lkotlinx/coroutines/ThreadLocalEventLoop;->INSTANCE:Lkotlinx/coroutines/ThreadLocalEventLoop;
invoke-virtual {v0}, Lkotlinx/coroutines/ThreadLocalEventLoop;->getEventLoop$kotlinx_coroutines_core()Lkotlinx/coroutines/EventLoop;
move-result-object v0
.line 185
invoke-virtual {v0}, Lkotlinx/coroutines/EventLoop;->isUnconfinedLoopActive()Z
move-result v1
if-eqz v1, :cond_0
.line 187
invoke-virtual {v0, p0}, Lkotlinx/coroutines/EventLoop;->dispatchUnconfined(Lkotlinx/coroutines/DispatchedTask;)V
goto :goto_1
:cond_0
const/4 v1, 0x1
.line 200
invoke-virtual {v0, v1}, Lkotlinx/coroutines/EventLoop;->incrementUseCount(Z)V
.line 191
:try_start_0
invoke-virtual {p0}, Lkotlinx/coroutines/DispatchedTask;->getDelegate$kotlinx_coroutines_core()Lkotlin/coroutines/Continuation;
move-result-object v2
invoke-static {p0, v2, v1}, Lkotlinx/coroutines/DispatchedTaskKt;->resume(Lkotlinx/coroutines/DispatchedTask;Lkotlin/coroutines/Continuation;Z)V
.line 205
:cond_1
invoke-virtual {v0}, Lkotlinx/coroutines/EventLoop;->processUnconfinedEvent()Z
move-result v2
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez v2, :cond_1
.line 214
:goto_0
invoke-virtual {v0, v1}, Lkotlinx/coroutines/EventLoop;->decrementUseCount(Z)V
goto :goto_1
:catchall_0
move-exception v2
const/4 v3, 0x0
.line 212
:try_start_1
invoke-virtual {p0, v2, v3}, Lkotlinx/coroutines/DispatchedTask;->handleFatalException$kotlinx_coroutines_core(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
goto :goto_0
:goto_1
return-void
:catchall_1
move-exception p0
.line 214
invoke-virtual {v0, v1}, Lkotlinx/coroutines/EventLoop;->decrementUseCount(Z)V
throw p0
.end method

View File

@@ -0,0 +1,67 @@
.class public final Lkotlinx/coroutines/DispatcherExecutor;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/util/concurrent/Executor;
# instance fields
.field public final dispatcher:Lkotlinx/coroutines/CoroutineDispatcher;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/CoroutineDispatcher;)V
.locals 0
.line 110
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/DispatcherExecutor;->dispatcher:Lkotlinx/coroutines/CoroutineDispatcher;
return-void
.end method
# virtual methods
.method public execute(Ljava/lang/Runnable;)V
.locals 2
iget-object v0, p0, Lkotlinx/coroutines/DispatcherExecutor;->dispatcher:Lkotlinx/coroutines/CoroutineDispatcher;
.line 112
sget-object v1, Lkotlin/coroutines/EmptyCoroutineContext;->INSTANCE:Lkotlin/coroutines/EmptyCoroutineContext;
invoke-virtual {v0, v1}, Lkotlinx/coroutines/CoroutineDispatcher;->isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lkotlinx/coroutines/DispatcherExecutor;->dispatcher:Lkotlinx/coroutines/CoroutineDispatcher;
.line 113
invoke-virtual {v0, v1, p1}, Lkotlinx/coroutines/CoroutineDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V
goto :goto_0
.line 115
:cond_0
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
:goto_0
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/DispatcherExecutor;->dispatcher:Lkotlinx/coroutines/CoroutineDispatcher;
.line 119
invoke-virtual {v0}, Lkotlinx/coroutines/CoroutineDispatcher;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,76 @@
.class public final Lkotlinx/coroutines/Dispatchers;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final Default:Lkotlinx/coroutines/CoroutineDispatcher;
.field public static final INSTANCE:Lkotlinx/coroutines/Dispatchers;
.field public static final IO:Lkotlinx/coroutines/CoroutineDispatcher;
.field public static final Unconfined:Lkotlinx/coroutines/CoroutineDispatcher;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/Dispatchers;
invoke-direct {v0}, Lkotlinx/coroutines/Dispatchers;-><init>()V
sput-object v0, Lkotlinx/coroutines/Dispatchers;->INSTANCE:Lkotlinx/coroutines/Dispatchers;
.line 21
sget-object v0, Lkotlinx/coroutines/scheduling/DefaultScheduler;->INSTANCE:Lkotlinx/coroutines/scheduling/DefaultScheduler;
sput-object v0, Lkotlinx/coroutines/Dispatchers;->Default:Lkotlinx/coroutines/CoroutineDispatcher;
.line 27
sget-object v0, Lkotlinx/coroutines/Unconfined;->INSTANCE:Lkotlinx/coroutines/Unconfined;
sput-object v0, Lkotlinx/coroutines/Dispatchers;->Unconfined:Lkotlinx/coroutines/CoroutineDispatcher;
.line 69
sget-object v0, Lkotlinx/coroutines/scheduling/DefaultIoScheduler;->INSTANCE:Lkotlinx/coroutines/scheduling/DefaultIoScheduler;
sput-object v0, Lkotlinx/coroutines/Dispatchers;->IO:Lkotlinx/coroutines/CoroutineDispatcher;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 19
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static final getDefault()Lkotlinx/coroutines/CoroutineDispatcher;
.locals 1
sget-object v0, Lkotlinx/coroutines/Dispatchers;->Default:Lkotlinx/coroutines/CoroutineDispatcher;
return-object v0
.end method
.method public static final getIO()Lkotlinx/coroutines/CoroutineDispatcher;
.locals 1
sget-object v0, Lkotlinx/coroutines/Dispatchers;->IO:Lkotlinx/coroutines/CoroutineDispatcher;
return-object v0
.end method
.method public static final getMain()Lkotlinx/coroutines/MainCoroutineDispatcher;
.locals 1
.line 24
sget-object v0, Lkotlinx/coroutines/internal/MainDispatcherLoader;->dispatcher:Lkotlinx/coroutines/MainCoroutineDispatcher;
return-object v0
.end method

View File

@@ -0,0 +1,65 @@
.class public final Lkotlinx/coroutines/DisposableFutureHandle;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/DisposableHandle;
# instance fields
.field public final future:Ljava/util/concurrent/Future;
# direct methods
.method public constructor <init>(Ljava/util/concurrent/Future;)V
.locals 0
.line 201
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/DisposableFutureHandle;->future:Ljava/util/concurrent/Future;
return-void
.end method
# virtual methods
.method public dispose()V
.locals 2
iget-object v0, p0, Lkotlinx/coroutines/DisposableFutureHandle;->future:Ljava/util/concurrent/Future;
const/4 v1, 0x0
.line 203
invoke-interface {v0, v1}, Ljava/util/concurrent/Future;->cancel(Z)Z
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 205
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "DisposableFutureHandle["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/DisposableFutureHandle;->future:Ljava/util/concurrent/Future;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v1, 0x5d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,8 @@
.class public interface abstract Lkotlinx/coroutines/DisposableHandle;
.super Ljava/lang/Object;
.source "SourceFile"
# virtual methods
.method public abstract dispose()V
.end method

View File

@@ -0,0 +1,73 @@
.class public final Lkotlinx/coroutines/DisposeOnCancel;
.super Lkotlinx/coroutines/CancelHandler;
.source "SourceFile"
# instance fields
.field public final handle:Lkotlinx/coroutines/DisposableHandle;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/DisposableHandle;)V
.locals 0
.line 382
invoke-direct {p0}, Lkotlinx/coroutines/CancelHandler;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/DisposeOnCancel;->handle:Lkotlinx/coroutines/DisposableHandle;
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 382
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/DisposeOnCancel;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 0
iget-object p1, p0, Lkotlinx/coroutines/DisposeOnCancel;->handle:Lkotlinx/coroutines/DisposableHandle;
.line 383
invoke-interface {p1}, Lkotlinx/coroutines/DisposableHandle;->dispose()V
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 384
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "DisposeOnCancel["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/DisposeOnCancel;->handle:Lkotlinx/coroutines/DisposableHandle;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v1, 0x5d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,46 @@
.class public final Lkotlinx/coroutines/DisposeOnCompletion;
.super Lkotlinx/coroutines/JobNode;
.source "SourceFile"
# instance fields
.field public final handle:Lkotlinx/coroutines/DisposableHandle;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/DisposableHandle;)V
.locals 0
.line 1413
invoke-direct {p0}, Lkotlinx/coroutines/JobNode;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/DisposeOnCompletion;->handle:Lkotlinx/coroutines/DisposableHandle;
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1411
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/DisposeOnCompletion;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 0
iget-object p1, p0, Lkotlinx/coroutines/DisposeOnCompletion;->handle:Lkotlinx/coroutines/DisposableHandle;
.line 1414
invoke-interface {p1}, Lkotlinx/coroutines/DisposableHandle;->dispose()V
return-void
.end method

View File

@@ -0,0 +1,80 @@
.class public final Lkotlinx/coroutines/Empty;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Incomplete;
# instance fields
.field public final isActive:Z
# direct methods
.method public constructor <init>(Z)V
.locals 0
.line 1303
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-boolean p1, p0, Lkotlinx/coroutines/Empty;->isActive:Z
return-void
.end method
# virtual methods
.method public getList()Lkotlinx/coroutines/NodeList;
.locals 1
const/4 v0, 0x0
return-object v0
.end method
.method public isActive()Z
.locals 1
iget-boolean v0, p0, Lkotlinx/coroutines/Empty;->isActive:Z
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 1305
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Empty{"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lkotlinx/coroutines/Empty;->isActive()Z
move-result v1
if-eqz v1, :cond_0
const-string v1, "Active"
goto :goto_0
:cond_0
const-string v1, "New"
:goto_0
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x7d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,302 @@
.class public abstract Lkotlinx/coroutines/EventLoop;
.super Lkotlinx/coroutines/CoroutineDispatcher;
.source "SourceFile"
# instance fields
.field public shared:Z
.field public unconfinedQueue:Lkotlin/collections/ArrayDeque;
.field public useCount:J
# direct methods
.method public constructor <init>()V
.locals 0
.line 22
invoke-direct {p0}, Lkotlinx/coroutines/CoroutineDispatcher;-><init>()V
return-void
.end method
.method public static synthetic decrementUseCount$default(Lkotlinx/coroutines/EventLoop;ZILjava/lang/Object;)V
.locals 0
if-nez p3, :cond_1
and-int/lit8 p2, p2, 0x1
if-eqz p2, :cond_0
const/4 p1, 0x0
.line 107
:cond_0
invoke-virtual {p0, p1}, Lkotlinx/coroutines/EventLoop;->decrementUseCount(Z)V
return-void
:cond_1
new-instance p0, Ljava/lang/UnsupportedOperationException;
const-string p1, "Super calls with default arguments not supported in this target, function: decrementUseCount"
invoke-direct {p0, p1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static synthetic incrementUseCount$default(Lkotlinx/coroutines/EventLoop;ZILjava/lang/Object;)V
.locals 0
if-nez p3, :cond_1
and-int/lit8 p2, p2, 0x1
if-eqz p2, :cond_0
const/4 p1, 0x0
.line 102
:cond_0
invoke-virtual {p0, p1}, Lkotlinx/coroutines/EventLoop;->incrementUseCount(Z)V
return-void
:cond_1
new-instance p0, Ljava/lang/UnsupportedOperationException;
const-string p1, "Super calls with default arguments not supported in this target, function: incrementUseCount"
invoke-direct {p0, p1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p0
.end method
# virtual methods
.method public final decrementUseCount(Z)V
.locals 4
iget-wide v0, p0, Lkotlinx/coroutines/EventLoop;->useCount:J
.line 108
invoke-virtual {p0, p1}, Lkotlinx/coroutines/EventLoop;->delta(Z)J
move-result-wide v2
sub-long/2addr v0, v2
iput-wide v0, p0, Lkotlinx/coroutines/EventLoop;->useCount:J
const-wide/16 v2, 0x0
cmp-long p1, v0, v2
if-lez p1, :cond_0
return-void
:cond_0
iget-boolean p1, p0, Lkotlinx/coroutines/EventLoop;->shared:Z
if-eqz p1, :cond_1
.line 113
invoke-virtual {p0}, Lkotlinx/coroutines/EventLoop;->shutdown()V
:cond_1
return-void
.end method
.method public final delta(Z)J
.locals 2
if-eqz p1, :cond_0
const-wide v0, 0x100000000L
goto :goto_0
:cond_0
const-wide/16 v0, 0x1
:goto_0
return-wide v0
.end method
.method public final dispatchUnconfined(Lkotlinx/coroutines/DispatchedTask;)V
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/EventLoop;->unconfinedQueue:Lkotlin/collections/ArrayDeque;
if-nez v0, :cond_0
.line 85
new-instance v0, Lkotlin/collections/ArrayDeque;
invoke-direct {v0}, Lkotlin/collections/ArrayDeque;-><init>()V
iput-object v0, p0, Lkotlinx/coroutines/EventLoop;->unconfinedQueue:Lkotlin/collections/ArrayDeque;
.line 86
:cond_0
invoke-virtual {v0, p1}, Lkotlin/collections/ArrayDeque;->addLast(Ljava/lang/Object;)V
return-void
.end method
.method public getNextTime()J
.locals 3
iget-object v0, p0, Lkotlinx/coroutines/EventLoop;->unconfinedQueue:Lkotlin/collections/ArrayDeque;
const-wide v1, 0x7fffffffffffffffL
if-nez v0, :cond_0
return-wide v1
.line 62
:cond_0
invoke-virtual {v0}, Lkotlin/collections/ArrayDeque;->isEmpty()Z
move-result v0
if-eqz v0, :cond_1
goto :goto_0
:cond_1
const-wide/16 v1, 0x0
:goto_0
return-wide v1
.end method
.method public final incrementUseCount(Z)V
.locals 4
iget-wide v0, p0, Lkotlinx/coroutines/EventLoop;->useCount:J
.line 103
invoke-virtual {p0, p1}, Lkotlinx/coroutines/EventLoop;->delta(Z)J
move-result-wide v2
add-long/2addr v0, v2
iput-wide v0, p0, Lkotlinx/coroutines/EventLoop;->useCount:J
if-nez p1, :cond_0
const/4 p1, 0x1
iput-boolean p1, p0, Lkotlinx/coroutines/EventLoop;->shared:Z
:cond_0
return-void
.end method
.method public final isUnconfinedLoopActive()Z
.locals 5
iget-wide v0, p0, Lkotlinx/coroutines/EventLoop;->useCount:J
const/4 v2, 0x1
.line 93
invoke-virtual {p0, v2}, Lkotlinx/coroutines/EventLoop;->delta(Z)J
move-result-wide v3
cmp-long v0, v0, v3
if-ltz v0, :cond_0
goto :goto_0
:cond_0
const/4 v2, 0x0
:goto_0
return v2
.end method
.method public final isUnconfinedQueueEmpty()Z
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/EventLoop;->unconfinedQueue:Lkotlin/collections/ArrayDeque;
if-eqz v0, :cond_0
.line 97
invoke-virtual {v0}, Lkotlin/collections/ArrayDeque;->isEmpty()Z
move-result v0
goto :goto_0
:cond_0
const/4 v0, 0x1
:goto_0
return v0
.end method
.method public final limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher;
.locals 0
.line 118
invoke-static {p1}, Lkotlinx/coroutines/internal/LimitedDispatcherKt;->checkParallelism(I)V
return-object p0
.end method
.method public abstract processNextEvent()J
.end method
.method public final processUnconfinedEvent()Z
.locals 2
iget-object v0, p0, Lkotlinx/coroutines/EventLoop;->unconfinedQueue:Lkotlin/collections/ArrayDeque;
const/4 v1, 0x0
if-nez v0, :cond_0
return v1
.line 67
:cond_0
invoke-virtual {v0}, Lkotlin/collections/ArrayDeque;->removeFirstOrNull()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lkotlinx/coroutines/DispatchedTask;
if-nez v0, :cond_1
return v1
.line 68
:cond_1
invoke-virtual {v0}, Lkotlinx/coroutines/DispatchedTask;->run()V
const/4 v0, 0x1
return v0
.end method
.method public shouldBeProcessedFromContext()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public abstract shutdown()V
.end method

View File

@@ -0,0 +1,77 @@
.class public final Lkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;
.super Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/EventLoopImplBase;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "DelayedResumeTask"
.end annotation
# instance fields
.field public final cont:Lkotlinx/coroutines/CancellableContinuation;
.field public final synthetic this$0:Lkotlinx/coroutines/EventLoopImplBase;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/EventLoopImplBase;JLkotlinx/coroutines/CancellableContinuation;)V
.locals 0
iput-object p1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;->this$0:Lkotlinx/coroutines/EventLoopImplBase;
.line 492
invoke-direct {p0, p2, p3}, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;-><init>(J)V
iput-object p4, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;->cont:Lkotlinx/coroutines/CancellableContinuation;
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;->cont:Lkotlinx/coroutines/CancellableContinuation;
iget-object v1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;->this$0:Lkotlinx/coroutines/EventLoopImplBase;
.line 493
sget-object v2, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
invoke-interface {v0, v1, v2}, Lkotlinx/coroutines/CancellableContinuation;->resumeUndispatched(Lkotlinx/coroutines/CoroutineDispatcher;Ljava/lang/Object;)V
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 494
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-super {p0}, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedResumeTask;->cont:Lkotlinx/coroutines/CancellableContinuation;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,69 @@
.class public final Lkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;
.super Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/EventLoopImplBase;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DelayedRunnableTask"
.end annotation
# instance fields
.field public final block:Ljava/lang/Runnable;
# direct methods
.method public constructor <init>(JLjava/lang/Runnable;)V
.locals 0
.line 500
invoke-direct {p0, p1, p2}, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;-><init>(J)V
iput-object p3, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;->block:Ljava/lang/Runnable;
return-void
.end method
# virtual methods
.method public run()V
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;->block:Ljava/lang/Runnable;
.line 501
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 502
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-super {p0}, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedRunnableTask;->block:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,439 @@
.class public abstract Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
.implements Ljava/lang/Comparable;
.implements Lkotlinx/coroutines/DisposableHandle;
.implements Lkotlinx/coroutines/internal/ThreadSafeHeapNode;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/EventLoopImplBase;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "DelayedTask"
.end annotation
# instance fields
.field private volatile _heap:Ljava/lang/Object;
.field public index:I
.field public nanoTime:J
# direct methods
.method public constructor <init>(J)V
.locals 0
.line 413
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-wide p1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->nanoTime:J
const/4 p1, -0x1
iput p1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->index:I
return-void
.end method
# virtual methods
.method public bridge synthetic compareTo(Ljava/lang/Object;)I
.locals 0
.line 407
check-cast p1, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->compareTo(Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;)I
move-result p1
return p1
.end method
.method public compareTo(Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;)I
.locals 4
iget-wide v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->nanoTime:J
.line 427
iget-wide v2, p1, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->nanoTime:J
sub-long/2addr v0, v2
const-wide/16 v2, 0x0
cmp-long p1, v0, v2
if-lez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
if-gez p1, :cond_1
const/4 p1, -0x1
goto :goto_0
:cond_1
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public final dispose()V
.locals 2
.line 20
monitor-enter p0
:try_start_0
iget-object v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->_heap:Ljava/lang/Object;
.line 481
invoke-static {}, Lkotlinx/coroutines/EventLoop_commonKt;->access$getDISPOSED_TASK$p()Lkotlinx/coroutines/internal/Symbol;
move-result-object v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-ne v0, v1, :cond_0
monitor-exit p0
return-void
.line 482
:cond_0
:try_start_1
instance-of v1, v0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;
if-eqz v1, :cond_1
check-cast v0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;
goto :goto_0
:catchall_0
move-exception v0
goto :goto_1
:cond_1
const/4 v0, 0x0
:goto_0
if-eqz v0, :cond_2
invoke-virtual {v0, p0}, Lkotlinx/coroutines/internal/ThreadSafeHeap;->remove(Lkotlinx/coroutines/internal/ThreadSafeHeapNode;)Z
.line 483
:cond_2
invoke-static {}, Lkotlinx/coroutines/EventLoop_commonKt;->access$getDISPOSED_TASK$p()Lkotlinx/coroutines/internal/Symbol;
move-result-object v0
iput-object v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->_heap:Ljava/lang/Object;
.line 484
sget-object v0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 20
monitor-exit p0
return-void
:goto_1
monitor-exit p0
throw v0
.end method
.method public getHeap()Lkotlinx/coroutines/internal/ThreadSafeHeap;
.locals 2
iget-object v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->_heap:Ljava/lang/Object;
.line 418
instance-of v1, v0, Lkotlinx/coroutines/internal/ThreadSafeHeap;
if-eqz v1, :cond_0
check-cast v0, Lkotlinx/coroutines/internal/ThreadSafeHeap;
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return-object v0
.end method
.method public getIndex()I
.locals 1
iget v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->index:I
return v0
.end method
.method public final scheduleTask(JLkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;Lkotlinx/coroutines/EventLoopImplBase;)I
.locals 7
.line 20
monitor-enter p0
:try_start_0
iget-object v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->_heap:Ljava/lang/Object;
.line 438
invoke-static {}, Lkotlinx/coroutines/EventLoop_commonKt;->access$getDISPOSED_TASK$p()Lkotlinx/coroutines/internal/Symbol;
move-result-object v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-ne v0, v1, :cond_0
monitor-exit p0
const/4 p1, 0x2
return p1
.line 20
:cond_0
:try_start_1
monitor-enter p3
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 73
:try_start_2
invoke-virtual {p3}, Lkotlinx/coroutines/internal/ThreadSafeHeap;->firstImpl()Lkotlinx/coroutines/internal/ThreadSafeHeapNode;
move-result-object v0
check-cast v0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;
.line 440
invoke-static {p4}, Lkotlinx/coroutines/EventLoopImplBase;->access$isCompleted(Lkotlinx/coroutines/EventLoopImplBase;)Z
move-result p4
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_1
if-eqz p4, :cond_1
:try_start_3
monitor-exit p3
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
monitor-exit p0
const/4 p1, 0x1
return p1
:catchall_0
move-exception p1
goto :goto_3
:cond_1
const-wide/16 v1, 0x0
if-nez v0, :cond_2
.line 453
:try_start_4
iput-wide p1, p3, Lkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;->timeNow:J
goto :goto_1
:catchall_1
move-exception p1
goto :goto_2
.line 460
:cond_2
iget-wide v3, v0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->nanoTime:J
sub-long v5, v3, p1
cmp-long p4, v5, v1
if-ltz p4, :cond_3
goto :goto_0
:cond_3
move-wide p1, v3
.line 464
:goto_0
iget-wide v3, p3, Lkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;->timeNow:J
sub-long v3, p1, v3
cmp-long p4, v3, v1
if-lez p4, :cond_4
iput-wide p1, p3, Lkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;->timeNow:J
:cond_4
:goto_1
iget-wide p1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->nanoTime:J
.line 473
iget-wide v3, p3, Lkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;->timeNow:J
sub-long/2addr p1, v3
cmp-long p1, p1, v1
if-gez p1, :cond_5
iput-wide v3, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->nanoTime:J
.line 74
:cond_5
invoke-virtual {p3, p0}, Lkotlinx/coroutines/internal/ThreadSafeHeap;->addImpl(Lkotlinx/coroutines/internal/ThreadSafeHeapNode;)V
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_1
.line 20
:try_start_5
monitor-exit p3
:try_end_5
.catchall {:try_start_5 .. :try_end_5} :catchall_0
.line 476
monitor-exit p0
const/4 p1, 0x0
return p1
.line 20
:goto_2
:try_start_6
monitor-exit p3
throw p1
:try_end_6
.catchall {:try_start_6 .. :try_end_6} :catchall_0
.line 476
:goto_3
monitor-exit p0
throw p1
.end method
.method public setHeap(Lkotlinx/coroutines/internal/ThreadSafeHeap;)V
.locals 2
iget-object v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->_heap:Ljava/lang/Object;
.line 420
invoke-static {}, Lkotlinx/coroutines/EventLoop_commonKt;->access$getDISPOSED_TASK$p()Lkotlinx/coroutines/internal/Symbol;
move-result-object v1
if-eq v0, v1, :cond_0
iput-object p1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->_heap:Ljava/lang/Object;
return-void
:cond_0
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Failed requirement."
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public setIndex(I)V
.locals 0
iput p1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->index:I
return-void
.end method
.method public final timeToExecute(J)Z
.locals 2
iget-wide v0, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->nanoTime:J
sub-long/2addr p1, v0
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
if-ltz p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public toString()Ljava/lang/String;
.locals 3
.line 486
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Delayed[nanos="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTask;->nanoTime:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const/16 v1, 0x5d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,31 @@
.class public final Lkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;
.super Lkotlinx/coroutines/internal/ThreadSafeHeap;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/EventLoopImplBase;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DelayedTaskQueue"
.end annotation
# instance fields
.field public timeNow:J
# direct methods
.method public constructor <init>(J)V
.locals 0
.line 522
invoke-direct {p0}, Lkotlinx/coroutines/internal/ThreadSafeHeap;-><init>()V
iput-wide p1, p0, Lkotlinx/coroutines/EventLoopImplBase$DelayedTaskQueue;->timeNow:J
return-void
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,54 @@
.class public abstract Lkotlinx/coroutines/EventLoopImplPlatform;
.super Lkotlinx/coroutines/EventLoop;
.source "SourceFile"
# direct methods
.method public constructor <init>()V
.locals 0
.line 11
invoke-direct {p0}, Lkotlinx/coroutines/EventLoop;-><init>()V
return-void
.end method
# virtual methods
.method public abstract getThread()Ljava/lang/Thread;
.end method
.method public reschedule(JLkotlinx/coroutines/EventLoopImplBase$DelayedTask;)V
.locals 1
.line 21
sget-object v0, Lkotlinx/coroutines/DefaultExecutor;->INSTANCE:Lkotlinx/coroutines/DefaultExecutor;
invoke-virtual {v0, p1, p2, p3}, Lkotlinx/coroutines/EventLoopImplBase;->schedule(JLkotlinx/coroutines/EventLoopImplBase$DelayedTask;)V
return-void
.end method
.method public final unpark()V
.locals 2
.line 15
invoke-virtual {p0}, Lkotlinx/coroutines/EventLoopImplPlatform;->getThread()Ljava/lang/Thread;
move-result-object v0
.line 16
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
if-eq v1, v0, :cond_0
.line 17
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
invoke-static {v0}, Ljava/util/concurrent/locks/LockSupport;->unpark(Ljava/lang/Thread;)V
:cond_0
return-void
.end method

View File

@@ -0,0 +1,20 @@
.class public abstract Lkotlinx/coroutines/EventLoopKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final createEventLoop()Lkotlinx/coroutines/EventLoop;
.locals 2
.line 29
new-instance v0, Lkotlinx/coroutines/BlockingEventLoop;
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
invoke-direct {v0, v1}, Lkotlinx/coroutines/BlockingEventLoop;-><init>(Ljava/lang/Thread;)V
return-object v0
.end method

View File

@@ -0,0 +1,82 @@
.class public abstract Lkotlinx/coroutines/EventLoop_commonKt;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final CLOSED_EMPTY:Lkotlinx/coroutines/internal/Symbol;
.field public static final DISPOSED_TASK:Lkotlinx/coroutines/internal/Symbol;
# direct methods
.method static constructor <clinit>()V
.locals 2
.line 143
new-instance v0, Lkotlinx/coroutines/internal/Symbol;
const-string v1, "REMOVED_TASK"
invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;-><init>(Ljava/lang/String;)V
sput-object v0, Lkotlinx/coroutines/EventLoop_commonKt;->DISPOSED_TASK:Lkotlinx/coroutines/internal/Symbol;
.line 168
new-instance v0, Lkotlinx/coroutines/internal/Symbol;
const-string v1, "CLOSED_EMPTY"
invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;-><init>(Ljava/lang/String;)V
sput-object v0, Lkotlinx/coroutines/EventLoop_commonKt;->CLOSED_EMPTY:Lkotlinx/coroutines/internal/Symbol;
return-void
.end method
.method public static final synthetic access$getCLOSED_EMPTY$p()Lkotlinx/coroutines/internal/Symbol;
.locals 1
sget-object v0, Lkotlinx/coroutines/EventLoop_commonKt;->CLOSED_EMPTY:Lkotlinx/coroutines/internal/Symbol;
return-object v0
.end method
.method public static final synthetic access$getDISPOSED_TASK$p()Lkotlinx/coroutines/internal/Symbol;
.locals 1
sget-object v0, Lkotlinx/coroutines/EventLoop_commonKt;->DISPOSED_TASK:Lkotlinx/coroutines/internal/Symbol;
return-object v0
.end method
.method public static final delayToNanos(J)J
.locals 3
const-wide/16 v0, 0x0
cmp-long v2, p0, v0
if-gtz v2, :cond_0
goto :goto_0
:cond_0
const-wide v0, 0x8637bd05af6L
cmp-long v0, p0, v0
if-ltz v0, :cond_1
const-wide v0, 0x7fffffffffffffffL
goto :goto_0
:cond_1
const-wide/32 v0, 0xf4240
mul-long/2addr v0, p0
:goto_0
return-wide v0
.end method

View File

@@ -0,0 +1,18 @@
.class public abstract Lkotlinx/coroutines/ExceptionsKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final CancellationException(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/util/concurrent/CancellationException;
.locals 1
.line 22
new-instance v0, Ljava/util/concurrent/CancellationException;
invoke-direct {v0, p0}, Ljava/util/concurrent/CancellationException;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p1}, Ljava/lang/Throwable;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
return-object v0
.end method

View File

@@ -0,0 +1,79 @@
.class public final Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;
.super Lkotlin/jvm/internal/Lambda;
.source "SourceFile"
# interfaces
.implements Lkotlin/jvm/functions/Function1;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;-><init>()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = null
.end annotation
# static fields
.field public static final INSTANCE:Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;
invoke-direct {v0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;-><init>()V
sput-object v0, Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;->INSTANCE:Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;
return-void
.end method
.method public constructor <init>()V
.locals 1
const/4 v0, 0x1
invoke-direct {p0, v0}, Lkotlin/jvm/internal/Lambda;-><init>(I)V
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 25
check-cast p1, Lkotlin/coroutines/CoroutineContext$Element;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;->invoke(Lkotlin/coroutines/CoroutineContext$Element;)Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
move-result-object p1
return-object p1
.end method
.method public final invoke(Lkotlin/coroutines/CoroutineContext$Element;)Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
.locals 1
.line 25
instance-of v0, p1, Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
if-eqz v0, :cond_0
check-cast p1, Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return-object p1
.end method

View File

@@ -0,0 +1,39 @@
.class public final Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;
.super Lkotlin/coroutines/AbstractCoroutineContextKey;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Key"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 2
.line 24
sget-object v0, Lkotlinx/coroutines/CoroutineDispatcher;->Key:Lkotlinx/coroutines/CoroutineDispatcher$Key;
sget-object v1, Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;->INSTANCE:Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key$1;
.line 23
invoke-direct {p0, v0, v1}, Lkotlin/coroutines/AbstractCoroutineContextKey;-><init>(Lkotlin/coroutines/CoroutineContext$Key;Lkotlin/jvm/functions/Function1;)V
return-void
.end method
.method public synthetic constructor <init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
.locals 0
.line 0
invoke-direct {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;-><init>()V
return-void
.end method

View File

@@ -0,0 +1,48 @@
.class public abstract Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
.super Lkotlinx/coroutines/CoroutineDispatcher;
.source "SourceFile"
# interfaces
.implements Ljava/io/Closeable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;
}
.end annotation
# static fields
.field public static final Key:Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;
# direct methods
.method static constructor <clinit>()V
.locals 2
new-instance v0, Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
sput-object v0, Lkotlinx/coroutines/ExecutorCoroutineDispatcher;->Key:Lkotlinx/coroutines/ExecutorCoroutineDispatcher$Key;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 20
invoke-direct {p0}, Lkotlinx/coroutines/CoroutineDispatcher;-><init>()V
return-void
.end method
# virtual methods
.method public abstract getExecutor()Ljava/util/concurrent/Executor;
.end method

View File

@@ -0,0 +1,330 @@
.class public final Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;
.super Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Delay;
# instance fields
.field public final executor:Ljava/util/concurrent/Executor;
# direct methods
.method public constructor <init>(Ljava/util/concurrent/Executor;)V
.locals 0
.line 122
invoke-direct {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcher;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->executor:Ljava/util/concurrent/Executor;
.line 130
invoke-virtual {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object p1
invoke-static {p1}, Lkotlinx/coroutines/internal/ConcurrentKt;->removeFutureOnCancel(Ljava/util/concurrent/Executor;)Z
return-void
.end method
# virtual methods
.method public final cancelJobOnRejection(Lkotlin/coroutines/CoroutineContext;Ljava/util/concurrent/RejectedExecutionException;)V
.locals 1
const-string v0, "The task was rejected"
.line 176
invoke-static {v0, p2}, Lkotlinx/coroutines/ExceptionsKt;->CancellationException(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/util/concurrent/CancellationException;
move-result-object p2
invoke-static {p1, p2}, Lkotlinx/coroutines/JobKt;->cancel(Lkotlin/coroutines/CoroutineContext;Ljava/util/concurrent/CancellationException;)V
return-void
.end method
.method public close()V
.locals 2
.line 180
invoke-virtual {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
instance-of v1, v0, Ljava/util/concurrent/ExecutorService;
if-eqz v1, :cond_0
check-cast v0, Ljava/util/concurrent/ExecutorService;
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
if-eqz v0, :cond_1
invoke-interface {v0}, Ljava/util/concurrent/ExecutorService;->shutdown()V
:cond_1
return-void
.end method
.method public dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V
.locals 1
.line 135
:try_start_0
invoke-virtual {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
invoke-interface {v0, p2}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception v0
.line 137
invoke-static {}, Lkotlinx/coroutines/AbstractTimeSourceKt;->getTimeSource()Lkotlinx/coroutines/AbstractTimeSource;
.line 138
invoke-virtual {p0, p1, v0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->cancelJobOnRejection(Lkotlin/coroutines/CoroutineContext;Ljava/util/concurrent/RejectedExecutionException;)V
.line 139
invoke-static {}, Lkotlinx/coroutines/Dispatchers;->getIO()Lkotlinx/coroutines/CoroutineDispatcher;
move-result-object v0
invoke-virtual {v0, p1, p2}, Lkotlinx/coroutines/CoroutineDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V
:goto_0
return-void
.end method
.method public equals(Ljava/lang/Object;)Z
.locals 1
.line 184
instance-of v0, p1, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;
if-eqz v0, :cond_0
check-cast p1, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;
invoke-virtual {p1}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object p1
invoke-virtual {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
if-ne p1, v0, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public getExecutor()Ljava/util/concurrent/Executor;
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->executor:Ljava/util/concurrent/Executor;
return-object v0
.end method
.method public hashCode()I
.locals 1
.line 185
invoke-virtual {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
invoke-static {v0}, Ljava/lang/System;->identityHashCode(Ljava/lang/Object;)I
move-result v0
return v0
.end method
.method public invokeOnTimeout(JLjava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/DisposableHandle;
.locals 9
.line 159
invoke-virtual {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
instance-of v1, v0, Ljava/util/concurrent/ScheduledExecutorService;
const/4 v2, 0x0
if-eqz v1, :cond_0
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
move-object v4, v0
goto :goto_0
:cond_0
move-object v4, v2
:goto_0
if-eqz v4, :cond_1
move-object v3, p0
move-object v5, p3
move-object v6, p4
move-wide v7, p1
invoke-virtual/range {v3 .. v8}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->scheduleBlock(Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;J)Ljava/util/concurrent/ScheduledFuture;
move-result-object v2
:cond_1
if-eqz v2, :cond_2
.line 161
new-instance p1, Lkotlinx/coroutines/DisposableFutureHandle;
invoke-direct {p1, v2}, Lkotlinx/coroutines/DisposableFutureHandle;-><init>(Ljava/util/concurrent/Future;)V
goto :goto_1
.line 162
:cond_2
sget-object v0, Lkotlinx/coroutines/DefaultExecutor;->INSTANCE:Lkotlinx/coroutines/DefaultExecutor;
invoke-virtual {v0, p1, p2, p3, p4}, Lkotlinx/coroutines/DefaultExecutor;->invokeOnTimeout(JLjava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/DisposableHandle;
move-result-object p1
:goto_1
return-object p1
.end method
.method public final scheduleBlock(Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;J)Ljava/util/concurrent/ScheduledFuture;
.locals 1
.line 168
:try_start_0
sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-interface {p1, p2, p4, p5, v0}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
move-result-object p1
:try_end_0
.catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
.line 170
invoke-virtual {p0, p3, p1}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->cancelJobOnRejection(Lkotlin/coroutines/CoroutineContext;Ljava/util/concurrent/RejectedExecutionException;)V
const/4 p1, 0x0
:goto_0
return-object p1
.end method
.method public scheduleResumeAfterDelay(JLkotlinx/coroutines/CancellableContinuation;)V
.locals 9
.line 144
invoke-virtual {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
instance-of v1, v0, Ljava/util/concurrent/ScheduledExecutorService;
const/4 v2, 0x0
if-eqz v1, :cond_0
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
move-object v4, v0
goto :goto_0
:cond_0
move-object v4, v2
:goto_0
if-eqz v4, :cond_1
.line 145
new-instance v5, Lkotlinx/coroutines/ResumeUndispatchedRunnable;
invoke-direct {v5, p0, p3}, Lkotlinx/coroutines/ResumeUndispatchedRunnable;-><init>(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CancellableContinuation;)V
.line 146
invoke-interface {p3}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext;
move-result-object v6
move-object v3, p0
move-wide v7, p1
.line 144
invoke-virtual/range {v3 .. v8}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->scheduleBlock(Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/Runnable;Lkotlin/coroutines/CoroutineContext;J)Ljava/util/concurrent/ScheduledFuture;
move-result-object v2
:cond_1
if-eqz v2, :cond_2
.line 151
invoke-static {p3, v2}, Lkotlinx/coroutines/JobKt;->cancelFutureOnCancellation(Lkotlinx/coroutines/CancellableContinuation;Ljava/util/concurrent/Future;)V
return-void
.line 155
:cond_2
sget-object v0, Lkotlinx/coroutines/DefaultExecutor;->INSTANCE:Lkotlinx/coroutines/DefaultExecutor;
invoke-virtual {v0, p1, p2, p3}, Lkotlinx/coroutines/EventLoopImplBase;->scheduleResumeAfterDelay(JLkotlinx/coroutines/CancellableContinuation;)V
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 183
invoke-virtual {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,73 @@
.class public abstract Lkotlinx/coroutines/ExecutorsKt;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final asExecutor(Lkotlinx/coroutines/CoroutineDispatcher;)Ljava/util/concurrent/Executor;
.locals 1
.line 108
instance-of v0, p0, Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
if-eqz v0, :cond_0
move-object v0, p0
check-cast v0, Lkotlinx/coroutines/ExecutorCoroutineDispatcher;
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
if-eqz v0, :cond_1
invoke-virtual {v0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcher;->getExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
if-nez v0, :cond_2
:cond_1
new-instance v0, Lkotlinx/coroutines/DispatcherExecutor;
invoke-direct {v0, p0}, Lkotlinx/coroutines/DispatcherExecutor;-><init>(Lkotlinx/coroutines/CoroutineDispatcher;)V
:cond_2
return-object v0
.end method
.method public static final from(Ljava/util/concurrent/Executor;)Lkotlinx/coroutines/CoroutineDispatcher;
.locals 1
.line 100
instance-of v0, p0, Lkotlinx/coroutines/DispatcherExecutor;
if-eqz v0, :cond_0
move-object v0, p0
check-cast v0, Lkotlinx/coroutines/DispatcherExecutor;
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
if-eqz v0, :cond_1
iget-object v0, v0, Lkotlinx/coroutines/DispatcherExecutor;->dispatcher:Lkotlinx/coroutines/CoroutineDispatcher;
if-nez v0, :cond_2
:cond_1
new-instance v0, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;
invoke-direct {v0, p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcherImpl;-><init>(Ljava/util/concurrent/Executor;)V
:cond_2
return-object v0
.end method

View File

@@ -0,0 +1,44 @@
.class public final Lkotlinx/coroutines/GlobalScope;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/CoroutineScope;
# static fields
.field public static final INSTANCE:Lkotlinx/coroutines/GlobalScope;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/GlobalScope;
invoke-direct {v0}, Lkotlinx/coroutines/GlobalScope;-><init>()V
sput-object v0, Lkotlinx/coroutines/GlobalScope;->INSTANCE:Lkotlinx/coroutines/GlobalScope;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 215
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public getCoroutineContext()Lkotlin/coroutines/CoroutineContext;
.locals 1
.line 221
sget-object v0, Lkotlin/coroutines/EmptyCoroutineContext;->INSTANCE:Lkotlin/coroutines/EmptyCoroutineContext;
return-object v0
.end method

View File

@@ -0,0 +1,52 @@
.class public final Lkotlinx/coroutines/InactiveNodeList;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlinx/coroutines/Incomplete;
# instance fields
.field public final list:Lkotlinx/coroutines/NodeList;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/NodeList;)V
.locals 0
.line 1375
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/InactiveNodeList;->list:Lkotlinx/coroutines/NodeList;
return-void
.end method
# virtual methods
.method public getList()Lkotlinx/coroutines/NodeList;
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/InactiveNodeList;->list:Lkotlinx/coroutines/NodeList;
return-object v0
.end method
.method public isActive()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1379
invoke-super {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,11 @@
.class public interface abstract Lkotlinx/coroutines/Incomplete;
.super Ljava/lang/Object;
.source "SourceFile"
# virtual methods
.method public abstract getList()Lkotlinx/coroutines/NodeList;
.end method
.method public abstract isActive()Z
.end method

View File

@@ -0,0 +1,20 @@
.class public final Lkotlinx/coroutines/IncompleteStateBox;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field public final state:Lkotlinx/coroutines/Incomplete;
# direct methods
.method public constructor <init>(Lkotlinx/coroutines/Incomplete;)V
.locals 0
.line 1283
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/IncompleteStateBox;->state:Lkotlinx/coroutines/Incomplete;
return-void
.end method

View File

@@ -0,0 +1,87 @@
.class public final Lkotlinx/coroutines/InvokeOnCancel;
.super Lkotlinx/coroutines/CancelHandler;
.source "SourceFile"
# instance fields
.field public final handler:Lkotlin/jvm/functions/Function1;
# direct methods
.method public constructor <init>(Lkotlin/jvm/functions/Function1;)V
.locals 0
.line 640
invoke-direct {p0}, Lkotlinx/coroutines/CancelHandler;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/InvokeOnCancel;->handler:Lkotlin/jvm/functions/Function1;
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 638
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/InvokeOnCancel;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/InvokeOnCancel;->handler:Lkotlin/jvm/functions/Function1;
.line 642
invoke-interface {v0, p1}, Lkotlin/jvm/functions/Function1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 644
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "InvokeOnCancel["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/InvokeOnCancel;->handler:Lkotlin/jvm/functions/Function1;
invoke-static {v1}, Lkotlinx/coroutines/DebugStringsKt;->getClassSimpleName(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x40
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-static {p0}, Lkotlinx/coroutines/DebugStringsKt;->getHexAddress(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x5d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,81 @@
.class public final Lkotlinx/coroutines/InvokeOnCancelling;
.super Lkotlinx/coroutines/JobCancellingNode;
.source "SourceFile"
# static fields
.field public static final _invoked$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
# instance fields
.field private volatile _invoked:I
.field public final handler:Lkotlin/jvm/functions/Function1;
# direct methods
.method static constructor <clinit>()V
.locals 2
const-class v0, Lkotlinx/coroutines/InvokeOnCancelling;
const-string v1, "_invoked"
invoke-static {v0, v1}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
move-result-object v0
sput-object v0, Lkotlinx/coroutines/InvokeOnCancelling;->_invoked$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return-void
.end method
.method public constructor <init>(Lkotlin/jvm/functions/Function1;)V
.locals 0
.line 1427
invoke-direct {p0}, Lkotlinx/coroutines/JobCancellingNode;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/InvokeOnCancelling;->handler:Lkotlin/jvm/functions/Function1;
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1425
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/InvokeOnCancelling;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 3
sget-object v0, Lkotlinx/coroutines/InvokeOnCancelling;->_invoked$FU:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
const/4 v1, 0x0
const/4 v2, 0x1
.line 1431
invoke-virtual {v0, p0, v1, v2}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->compareAndSet(Ljava/lang/Object;II)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lkotlinx/coroutines/InvokeOnCancelling;->handler:Lkotlin/jvm/functions/Function1;
invoke-interface {v0, p1}, Lkotlin/jvm/functions/Function1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
:cond_0
return-void
.end method

View File

@@ -0,0 +1,46 @@
.class public final Lkotlinx/coroutines/InvokeOnCompletion;
.super Lkotlinx/coroutines/JobNode;
.source "SourceFile"
# instance fields
.field public final handler:Lkotlin/jvm/functions/Function1;
# direct methods
.method public constructor <init>(Lkotlin/jvm/functions/Function1;)V
.locals 0
.line 1384
invoke-direct {p0}, Lkotlinx/coroutines/JobNode;-><init>()V
iput-object p1, p0, Lkotlinx/coroutines/InvokeOnCompletion;->handler:Lkotlin/jvm/functions/Function1;
return-void
.end method
# virtual methods
.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.line 1382
check-cast p1, Ljava/lang/Throwable;
invoke-virtual {p0, p1}, Lkotlinx/coroutines/InvokeOnCompletion;->invoke(Ljava/lang/Throwable;)V
sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
return-object p1
.end method
.method public invoke(Ljava/lang/Throwable;)V
.locals 1
iget-object v0, p0, Lkotlinx/coroutines/InvokeOnCompletion;->handler:Lkotlin/jvm/functions/Function1;
.line 1385
invoke-interface {v0, p1}, Lkotlin/jvm/functions/Function1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method

View File

@@ -0,0 +1,123 @@
.class public abstract Lkotlinx/coroutines/Job$DefaultImpls;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/Job;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DefaultImpls"
.end annotation
# direct methods
.method public static synthetic cancel$default(Lkotlinx/coroutines/Job;Ljava/util/concurrent/CancellationException;ILjava/lang/Object;)V
.locals 0
if-nez p3, :cond_1
and-int/lit8 p2, p2, 0x1
if-eqz p2, :cond_0
const/4 p1, 0x0
.line 199
:cond_0
invoke-interface {p0, p1}, Lkotlinx/coroutines/Job;->cancel(Ljava/util/concurrent/CancellationException;)V
return-void
:cond_1
new-instance p0, Ljava/lang/UnsupportedOperationException;
const-string p1, "Super calls with default arguments not supported in this target, function: cancel"
invoke-direct {p0, p1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static fold(Lkotlinx/coroutines/Job;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
.locals 0
.line 112
invoke-static {p0, p1, p2}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->fold(Lkotlin/coroutines/CoroutineContext$Element;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static get(Lkotlinx/coroutines/Job;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
.locals 0
.line 112
invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->get(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
move-result-object p0
return-object p0
.end method
.method public static synthetic invokeOnCompletion$default(Lkotlinx/coroutines/Job;ZZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/DisposableHandle;
.locals 0
if-nez p5, :cond_2
and-int/lit8 p5, p4, 0x1
if-eqz p5, :cond_0
const/4 p1, 0x0
:cond_0
and-int/lit8 p4, p4, 0x2
if-eqz p4, :cond_1
const/4 p2, 0x1
.line 357
:cond_1
invoke-interface {p0, p1, p2, p3}, Lkotlinx/coroutines/Job;->invokeOnCompletion(ZZLkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/DisposableHandle;
move-result-object p0
return-object p0
:cond_2
new-instance p0, Ljava/lang/UnsupportedOperationException;
const-string p1, "Super calls with default arguments not supported in this target, function: invokeOnCompletion"
invoke-direct {p0, p1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static minusKey(Lkotlinx/coroutines/Job;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
.locals 0
.line 112
invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->minusKey(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
return-object p0
.end method
.method public static plus(Lkotlinx/coroutines/Job;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
.locals 0
.line 112
invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->plus(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
move-result-object p0
return-object p0
.end method

View File

@@ -0,0 +1,44 @@
.class public final Lkotlinx/coroutines/Job$Key;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlin/coroutines/CoroutineContext$Key;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lkotlinx/coroutines/Job;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Key"
.end annotation
# static fields
.field public static final synthetic $$INSTANCE:Lkotlinx/coroutines/Job$Key;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lkotlinx/coroutines/Job$Key;
invoke-direct {v0}, Lkotlinx/coroutines/Job$Key;-><init>()V
sput-object v0, Lkotlinx/coroutines/Job$Key;->$$INSTANCE:Lkotlinx/coroutines/Job$Key;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 116
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View File

@@ -0,0 +1,66 @@
.class public interface abstract Lkotlinx/coroutines/Job;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lkotlin/coroutines/CoroutineContext$Element;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lkotlinx/coroutines/Job$DefaultImpls;,
Lkotlinx/coroutines/Job$Key;
}
.end annotation
# static fields
.field public static final Key:Lkotlinx/coroutines/Job$Key;
# direct methods
.method static constructor <clinit>()V
.locals 1
sget-object v0, Lkotlinx/coroutines/Job$Key;->$$INSTANCE:Lkotlinx/coroutines/Job$Key;
sput-object v0, Lkotlinx/coroutines/Job;->Key:Lkotlinx/coroutines/Job$Key;
return-void
.end method
# virtual methods
.method public abstract attachChild(Lkotlinx/coroutines/ChildJob;)Lkotlinx/coroutines/ChildHandle;
.end method
.method public abstract cancel(Ljava/util/concurrent/CancellationException;)V
.end method
.method public abstract getCancellationException()Ljava/util/concurrent/CancellationException;
.end method
.method public abstract getParent()Lkotlinx/coroutines/Job;
.end method
.method public abstract invokeOnCompletion(Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/DisposableHandle;
.end method
.method public abstract invokeOnCompletion(ZZLkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/DisposableHandle;
.end method
.method public abstract isActive()Z
.end method
.method public abstract isCancelled()Z
.end method
.method public abstract isCompleted()Z
.end method
.method public abstract join(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
.end method
.method public abstract start()Z
.end method

View File

@@ -0,0 +1,182 @@
.class public final Lkotlinx/coroutines/JobCancellationException;
.super Ljava/util/concurrent/CancellationException;
.source "SourceFile"
# instance fields
.field public final transient job:Lkotlinx/coroutines/Job;
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/Throwable;Lkotlinx/coroutines/Job;)V
.locals 0
.line 33
invoke-direct {p0, p1}, Ljava/util/concurrent/CancellationException;-><init>(Ljava/lang/String;)V
iput-object p3, p0, Lkotlinx/coroutines/JobCancellationException;->job:Lkotlinx/coroutines/Job;
if-eqz p2, :cond_0
.line 36
invoke-virtual {p0, p2}, Ljava/lang/Throwable;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
:cond_0
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.locals 2
if-eq p1, p0, :cond_1
.line 68
instance-of v0, p1, Lkotlinx/coroutines/JobCancellationException;
if-eqz v0, :cond_0
check-cast p1, Lkotlinx/coroutines/JobCancellationException;
invoke-virtual {p1}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p1, Lkotlinx/coroutines/JobCancellationException;->job:Lkotlinx/coroutines/Job;
iget-object v1, p0, Lkotlinx/coroutines/JobCancellationException;->job:Lkotlinx/coroutines/Job;
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
invoke-virtual {p1}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object p1
invoke-virtual {p0}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object v0
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
goto :goto_0
:cond_0
const/4 p1, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p1, 0x1
:goto_1
return p1
.end method
.method public fillInStackTrace()Ljava/lang/Throwable;
.locals 1
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/StackTraceElement;
.line 44
invoke-virtual {p0, v0}, Ljava/lang/Throwable;->setStackTrace([Ljava/lang/StackTraceElement;)V
return-object p0
.end method
.method public hashCode()I
.locals 2
.line 70
invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
move-result v0
mul-int/lit8 v0, v0, 0x1f
iget-object v1, p0, Lkotlinx/coroutines/JobCancellationException;->job:Lkotlinx/coroutines/Job;
invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I
move-result v1
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
invoke-virtual {p0}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object v1
if-eqz v1, :cond_0
invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I
move-result v1
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
add-int/2addr v0, v1
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 64
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-super {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "; job="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lkotlinx/coroutines/JobCancellationException;->job:Lkotlinx/coroutines/Job;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,14 @@
.class public abstract Lkotlinx/coroutines/JobCancellingNode;
.super Lkotlinx/coroutines/JobNode;
.source "SourceFile"
# direct methods
.method public constructor <init>()V
.locals 0
.line 1423
invoke-direct {p0}, Lkotlinx/coroutines/JobNode;-><init>()V
return-void
.end method

Some files were not shown because too many files have changed in this diff Show More