.class public final Lkotlinx/coroutines/internal/y; .super Ljava/lang/Object; .source "ThreadContext.kt" # static fields .field private static final bmD:Lkotlinx/coroutines/internal/u; .field private static final bmE:Lkotlin/jvm/functions/Function2; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlin/jvm/functions/Function2<", "Ljava/lang/Object;", "Lkotlin/coroutines/CoroutineContext$b;", "Ljava/lang/Object;", ">;" } .end annotation .end field .field private static final bmF:Lkotlin/jvm/functions/Function2; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlin/jvm/functions/Function2<", "Lkotlinx/coroutines/bs<", "*>;", "Lkotlin/coroutines/CoroutineContext$b;", "Lkotlinx/coroutines/bs<", "*>;>;" } .end annotation .end field .field private static final bmG:Lkotlin/jvm/functions/Function2; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlin/jvm/functions/Function2<", "Lkotlinx/coroutines/internal/ab;", "Lkotlin/coroutines/CoroutineContext$b;", "Lkotlinx/coroutines/internal/ab;", ">;" } .end annotation .end field .field private static final bmH:Lkotlin/jvm/functions/Function2; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlin/jvm/functions/Function2<", "Lkotlinx/coroutines/internal/ab;", "Lkotlin/coroutines/CoroutineContext$b;", "Lkotlinx/coroutines/internal/ab;", ">;" } .end annotation .end field # direct methods .method static constructor ()V .locals 2 new-instance v0, Lkotlinx/coroutines/internal/u; const-string v1, "ZERO" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/u;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/internal/y;->bmD:Lkotlinx/coroutines/internal/u; sget-object v0, Lkotlinx/coroutines/internal/y$a;->bmI:Lkotlinx/coroutines/internal/y$a; check-cast v0, Lkotlin/jvm/functions/Function2; sput-object v0, Lkotlinx/coroutines/internal/y;->bmE:Lkotlin/jvm/functions/Function2; sget-object v0, Lkotlinx/coroutines/internal/y$b;->bmJ:Lkotlinx/coroutines/internal/y$b; check-cast v0, Lkotlin/jvm/functions/Function2; sput-object v0, Lkotlinx/coroutines/internal/y;->bmF:Lkotlin/jvm/functions/Function2; sget-object v0, Lkotlinx/coroutines/internal/y$d;->bmL:Lkotlinx/coroutines/internal/y$d; check-cast v0, Lkotlin/jvm/functions/Function2; sput-object v0, Lkotlinx/coroutines/internal/y;->bmG:Lkotlin/jvm/functions/Function2; sget-object v0, Lkotlinx/coroutines/internal/y$c;->bmK:Lkotlinx/coroutines/internal/y$c; check-cast v0, Lkotlin/jvm/functions/Function2; sput-object v0, Lkotlinx/coroutines/internal/y;->bmH:Lkotlin/jvm/functions/Function2; return-void .end method .method public static final a(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V .locals 2 const-string v0, "context" invoke-static {p0, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V sget-object v0, Lkotlinx/coroutines/internal/y;->bmD:Lkotlinx/coroutines/internal/u; if-ne p1, v0, :cond_0 return-void :cond_0 instance-of v0, p1, Lkotlinx/coroutines/internal/ab; if-eqz v0, :cond_1 move-object v0, p1 check-cast v0, Lkotlinx/coroutines/internal/ab; const/4 v1, 0x0 iput v1, v0, Lkotlinx/coroutines/internal/ab;->bmO:I sget-object v0, Lkotlinx/coroutines/internal/y;->bmH:Lkotlin/jvm/functions/Function2; invoke-interface {p0, p1, v0}, Lkotlin/coroutines/CoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; return-void :cond_1 const/4 v0, 0x0 sget-object v1, Lkotlinx/coroutines/internal/y;->bmF:Lkotlin/jvm/functions/Function2; invoke-interface {p0, v0, v1}, Lkotlin/coroutines/CoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; move-result-object v0 if-eqz v0, :cond_2 check-cast v0, Lkotlinx/coroutines/bs; invoke-interface {v0, p0, p1}, Lkotlinx/coroutines/bs;->a(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V return-void :cond_2 new-instance p0, Lkotlin/r; const-string p1, "null cannot be cast to non-null type kotlinx.coroutines.ThreadContextElement" invoke-direct {p0, p1}, Lkotlin/r;->(Ljava/lang/String;)V throw p0 .end method .method public static final b(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Ljava/lang/Object; .locals 1 const-string v0, "context" invoke-static {p0, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V if-nez p1, :cond_0 invoke-static {p0}, Lkotlinx/coroutines/internal/y;->d(Lkotlin/coroutines/CoroutineContext;)Ljava/lang/Object; move-result-object p1 :cond_0 const/4 v0, 0x0 invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 if-ne p1, v0, :cond_1 sget-object p0, Lkotlinx/coroutines/internal/y;->bmD:Lkotlinx/coroutines/internal/u; return-object p0 :cond_1 instance-of v0, p1, Ljava/lang/Integer; if-eqz v0, :cond_2 new-instance v0, Lkotlinx/coroutines/internal/ab; check-cast p1, Ljava/lang/Number; invoke-virtual {p1}, Ljava/lang/Number;->intValue()I move-result p1 invoke-direct {v0, p0, p1}, Lkotlinx/coroutines/internal/ab;->(Lkotlin/coroutines/CoroutineContext;I)V sget-object p1, Lkotlinx/coroutines/internal/y;->bmG:Lkotlin/jvm/functions/Function2; invoke-interface {p0, v0, p1}, Lkotlin/coroutines/CoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; move-result-object p0 return-object p0 :cond_2 if-eqz p1, :cond_3 check-cast p1, Lkotlinx/coroutines/bs; invoke-interface {p1, p0}, Lkotlinx/coroutines/bs;->c(Lkotlin/coroutines/CoroutineContext;)Ljava/lang/Object; move-result-object p0 return-object p0 :cond_3 new-instance p0, Lkotlin/r; const-string p1, "null cannot be cast to non-null type kotlinx.coroutines.ThreadContextElement" invoke-direct {p0, p1}, Lkotlin/r;->(Ljava/lang/String;)V throw p0 .end method .method public static final d(Lkotlin/coroutines/CoroutineContext;)Ljava/lang/Object; .locals 2 const-string v0, "context" invoke-static {p0, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V const/4 v0, 0x0 invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 sget-object v1, Lkotlinx/coroutines/internal/y;->bmE:Lkotlin/jvm/functions/Function2; invoke-interface {p0, v0, v1}, Lkotlin/coroutines/CoroutineContext;->fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; move-result-object p0 if-nez p0, :cond_0 invoke-static {}, Lkotlin/jvm/internal/k;->Ee()V :cond_0 return-object p0 .end method