.class public abstract Lkotlinx/coroutines/channels/ChannelKt; .super Ljava/lang/Object; .source "SourceFile" # direct methods .method public static final Channel(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/channels/Channel; .locals 2 const/4 v0, -0x2 const/4 v1, 0x1 if-eq p0, v0, :cond_6 const/4 v0, -0x1 if-eq p0, v0, :cond_4 if-eqz p0, :cond_2 const v0, 0x7fffffff if-eq p0, v0, :cond_1 .line 797 sget-object v0, Lkotlinx/coroutines/channels/BufferOverflow;->SUSPEND:Lkotlinx/coroutines/channels/BufferOverflow; if-ne p1, v0, :cond_0 new-instance p1, Lkotlinx/coroutines/channels/BufferedChannel; invoke-direct {p1, p0, p2}, Lkotlinx/coroutines/channels/BufferedChannel;->(ILkotlin/jvm/functions/Function1;)V goto :goto_1 .line 798 :cond_0 new-instance v0, Lkotlinx/coroutines/channels/ConflatedBufferedChannel; invoke-direct {v0, p0, p1, p2}, Lkotlinx/coroutines/channels/ConflatedBufferedChannel;->(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)V move-object p1, v0 goto :goto_1 .line 791 :cond_1 new-instance p1, Lkotlinx/coroutines/channels/BufferedChannel; invoke-direct {p1, v0, p2}, Lkotlinx/coroutines/channels/BufferedChannel;->(ILkotlin/jvm/functions/Function1;)V goto :goto_1 .line 780 :cond_2 sget-object p0, Lkotlinx/coroutines/channels/BufferOverflow;->SUSPEND:Lkotlinx/coroutines/channels/BufferOverflow; if-ne p1, p0, :cond_3 .line 781 new-instance p0, Lkotlinx/coroutines/channels/BufferedChannel; const/4 p1, 0x0 invoke-direct {p0, p1, p2}, Lkotlinx/coroutines/channels/BufferedChannel;->(ILkotlin/jvm/functions/Function1;)V :goto_0 move-object p1, p0 goto :goto_1 .line 783 :cond_3 new-instance p0, Lkotlinx/coroutines/channels/ConflatedBufferedChannel; invoke-direct {p0, v1, p1, p2}, Lkotlinx/coroutines/channels/ConflatedBufferedChannel;->(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)V goto :goto_0 .line 786 :cond_4 sget-object p0, Lkotlinx/coroutines/channels/BufferOverflow;->SUSPEND:Lkotlinx/coroutines/channels/BufferOverflow; if-ne p1, p0, :cond_5 .line 789 new-instance p1, Lkotlinx/coroutines/channels/ConflatedBufferedChannel; sget-object p0, Lkotlinx/coroutines/channels/BufferOverflow;->DROP_OLDEST:Lkotlinx/coroutines/channels/BufferOverflow; invoke-direct {p1, v1, p0, p2}, Lkotlinx/coroutines/channels/ConflatedBufferedChannel;->(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)V goto :goto_1 .line 786 :cond_5 new-instance p0, Ljava/lang/IllegalArgumentException; const-string p1, "CONFLATED capacity cannot be used with non-default onBufferOverflow" invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p0 .line 793 :cond_6 sget-object p0, Lkotlinx/coroutines/channels/BufferOverflow;->SUSPEND:Lkotlinx/coroutines/channels/BufferOverflow; if-ne p1, p0, :cond_7 new-instance p0, Lkotlinx/coroutines/channels/BufferedChannel; sget-object p1, Lkotlinx/coroutines/channels/Channel;->Factory:Lkotlinx/coroutines/channels/Channel$Factory; invoke-virtual {p1}, Lkotlinx/coroutines/channels/Channel$Factory;->getCHANNEL_DEFAULT_CAPACITY$kotlinx_coroutines_core()I move-result p1 invoke-direct {p0, p1, p2}, Lkotlinx/coroutines/channels/BufferedChannel;->(ILkotlin/jvm/functions/Function1;)V goto :goto_0 .line 794 :cond_7 new-instance p0, Lkotlinx/coroutines/channels/ConflatedBufferedChannel; invoke-direct {p0, v1, p1, p2}, Lkotlinx/coroutines/channels/ConflatedBufferedChannel;->(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)V goto :goto_0 :goto_1 return-object p1 .end method .method public static synthetic Channel$default(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/channels/Channel; .locals 0 and-int/lit8 p4, p3, 0x1 if-eqz p4, :cond_0 const/4 p0, 0x0 :cond_0 and-int/lit8 p4, p3, 0x2 if-eqz p4, :cond_1 .line 775 sget-object p1, Lkotlinx/coroutines/channels/BufferOverflow;->SUSPEND:Lkotlinx/coroutines/channels/BufferOverflow; :cond_1 and-int/lit8 p3, p3, 0x4 if-eqz p3, :cond_2 const/4 p2, 0x0 .line 773 :cond_2 invoke-static {p0, p1, p2}, Lkotlinx/coroutines/channels/ChannelKt;->Channel(ILkotlinx/coroutines/channels/BufferOverflow;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/channels/Channel; move-result-object p0 return-object p0 .end method