ADD week 5
This commit is contained in:
@ -0,0 +1,32 @@
|
||||
package kotlinx.coroutines.stream;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.coroutines.Continuation;
|
||||
import kotlin.coroutines.jvm.internal.ContinuationImpl;
|
||||
import kotlin.coroutines.jvm.internal.DebugMetadata;
|
||||
|
||||
/* compiled from: Stream.kt */
|
||||
@Metadata(k = 3, mv = {1, 8, 0}, xi = 48)
|
||||
@DebugMetadata(c = "kotlinx.coroutines.stream.StreamFlow", f = "Stream.kt", i = {0, 0}, l = {26}, m = "collect", n = {"this", "collector"}, s = {"L$0", "L$1"})
|
||||
/* loaded from: classes.dex */
|
||||
final class StreamFlow$collect$1 extends ContinuationImpl {
|
||||
Object L$0;
|
||||
Object L$1;
|
||||
Object L$2;
|
||||
int label;
|
||||
/* synthetic */ Object result;
|
||||
final /* synthetic */ StreamFlow<T> this$0;
|
||||
|
||||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||||
StreamFlow$collect$1(StreamFlow<T> streamFlow, Continuation<? super StreamFlow$collect$1> continuation) {
|
||||
super(continuation);
|
||||
this.this$0 = streamFlow;
|
||||
}
|
||||
|
||||
@Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl
|
||||
public final Object invokeSuspend(Object obj) {
|
||||
this.result = obj;
|
||||
this.label |= Integer.MIN_VALUE;
|
||||
return this.this$0.collect(null, this);
|
||||
}
|
||||
}
|
118
02-Easy5/E5/sources/kotlinx/coroutines/stream/StreamFlow.java
Normal file
118
02-Easy5/E5/sources/kotlinx/coroutines/stream/StreamFlow.java
Normal file
@ -0,0 +1,118 @@
|
||||
package kotlinx.coroutines.stream;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
|
||||
import java.util.stream.Stream;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.Volatile;
|
||||
import kotlinx.coroutines.flow.Flow;
|
||||
|
||||
/* compiled from: Stream.kt */
|
||||
@Metadata(d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0002\u0018\u0000*\u0004\b\u0000\u0010\u00012\b\u0012\u0004\u0012\u0002H\u00010\u0002B\u0013\u0012\f\u0010\u0003\u001a\b\u0012\u0004\u0012\u00028\u00000\u0004¢\u0006\u0002\u0010\u0005J\u001f\u0010\b\u001a\u00020\t2\f\u0010\n\u001a\b\u0012\u0004\u0012\u00028\u00000\u000bH\u0096@ø\u0001\u0000¢\u0006\u0002\u0010\fR\t\u0010\u0006\u001a\u00020\u0007X\u0082\u0004R\u0014\u0010\u0003\u001a\b\u0012\u0004\u0012\u00028\u00000\u0004X\u0082\u0004¢\u0006\u0002\n\u0000\u0082\u0002\u0004\n\u0002\b\u0019¨\u0006\r"}, d2 = {"Lkotlinx/coroutines/stream/StreamFlow;", "T", "Lkotlinx/coroutines/flow/Flow;", "stream", "Ljava/util/stream/Stream;", "(Ljava/util/stream/Stream;)V", "consumed", "Lkotlinx/atomicfu/AtomicBoolean;", "collect", "", "collector", "Lkotlinx/coroutines/flow/FlowCollector;", "(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "kotlinx-coroutines-core"}, k = 1, mv = {1, 8, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
final class StreamFlow<T> implements Flow<T> {
|
||||
private static final AtomicIntegerFieldUpdater consumed$FU = AtomicIntegerFieldUpdater.newUpdater(StreamFlow.class, "consumed");
|
||||
|
||||
@Volatile
|
||||
private volatile int consumed = 0;
|
||||
private final Stream<T> stream;
|
||||
|
||||
public StreamFlow(Stream<T> stream) {
|
||||
this.stream = stream;
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
/* JADX WARN: Removed duplicated region for block: B:16:0x005d A[Catch: all -> 0x0037, TRY_LEAVE, TryCatch #0 {all -> 0x0037, blocks: (B:11:0x0032, B:14:0x0057, B:16:0x005d), top: B:10:0x0032 }] */
|
||||
/* JADX WARN: Removed duplicated region for block: B:31:0x0041 */
|
||||
/* JADX WARN: Removed duplicated region for block: B:8:0x0024 */
|
||||
@Override // kotlinx.coroutines.flow.Flow
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct add '--show-bad-code' argument
|
||||
*/
|
||||
public java.lang.Object collect(kotlinx.coroutines.flow.FlowCollector<? super T> r7, kotlin.coroutines.Continuation<? super kotlin.Unit> r8) {
|
||||
/*
|
||||
r6 = this;
|
||||
boolean r0 = r8 instanceof kotlinx.coroutines.stream.StreamFlow$collect$1
|
||||
if (r0 == 0) goto L14
|
||||
r0 = r8
|
||||
kotlinx.coroutines.stream.StreamFlow$collect$1 r0 = (kotlinx.coroutines.stream.StreamFlow$collect$1) r0
|
||||
int r1 = r0.label
|
||||
r2 = -2147483648(0xffffffff80000000, float:-0.0)
|
||||
r1 = r1 & r2
|
||||
if (r1 == 0) goto L14
|
||||
int r8 = r0.label
|
||||
int r8 = r8 - r2
|
||||
r0.label = r8
|
||||
goto L19
|
||||
L14:
|
||||
kotlinx.coroutines.stream.StreamFlow$collect$1 r0 = new kotlinx.coroutines.stream.StreamFlow$collect$1
|
||||
r0.<init>(r6, r8)
|
||||
L19:
|
||||
java.lang.Object r8 = r0.result
|
||||
java.lang.Object r1 = kotlin.coroutines.intrinsics.IntrinsicsKt.getCOROUTINE_SUSPENDED()
|
||||
int r2 = r0.label
|
||||
r3 = 1
|
||||
if (r2 == 0) goto L41
|
||||
if (r2 != r3) goto L39
|
||||
java.lang.Object r7 = r0.L$2
|
||||
java.util.Iterator r7 = (java.util.Iterator) r7
|
||||
java.lang.Object r2 = r0.L$1
|
||||
kotlinx.coroutines.flow.FlowCollector r2 = (kotlinx.coroutines.flow.FlowCollector) r2
|
||||
java.lang.Object r4 = r0.L$0
|
||||
kotlinx.coroutines.stream.StreamFlow r4 = (kotlinx.coroutines.stream.StreamFlow) r4
|
||||
kotlin.ResultKt.throwOnFailure(r8) // Catch: java.lang.Throwable -> L37
|
||||
r8 = r2
|
||||
goto L57
|
||||
L37:
|
||||
r7 = move-exception
|
||||
goto L7a
|
||||
L39:
|
||||
java.lang.IllegalStateException r7 = new java.lang.IllegalStateException
|
||||
java.lang.String r8 = "call to 'resume' before 'invoke' with coroutine"
|
||||
r7.<init>(r8)
|
||||
throw r7
|
||||
L41:
|
||||
kotlin.ResultKt.throwOnFailure(r8)
|
||||
java.util.concurrent.atomic.AtomicIntegerFieldUpdater r8 = kotlinx.coroutines.stream.StreamFlow.consumed$FU
|
||||
r2 = 0
|
||||
boolean r8 = r8.compareAndSet(r6, r2, r3)
|
||||
if (r8 == 0) goto L80
|
||||
java.util.stream.Stream<T> r8 = r6.stream // Catch: java.lang.Throwable -> L78
|
||||
java.util.Iterator r8 = kotlin.streams.jdk8.StreamsKt$$ExternalSyntheticApiModelOutline0.m(r8) // Catch: java.lang.Throwable -> L78
|
||||
r4 = r6
|
||||
r5 = r8
|
||||
r8 = r7
|
||||
r7 = r5
|
||||
L57:
|
||||
boolean r2 = r7.hasNext() // Catch: java.lang.Throwable -> L37
|
||||
if (r2 == 0) goto L70
|
||||
java.lang.Object r2 = r7.next() // Catch: java.lang.Throwable -> L37
|
||||
r0.L$0 = r4 // Catch: java.lang.Throwable -> L37
|
||||
r0.L$1 = r8 // Catch: java.lang.Throwable -> L37
|
||||
r0.L$2 = r7 // Catch: java.lang.Throwable -> L37
|
||||
r0.label = r3 // Catch: java.lang.Throwable -> L37
|
||||
java.lang.Object r2 = r8.emit(r2, r0) // Catch: java.lang.Throwable -> L37
|
||||
if (r2 != r1) goto L57
|
||||
return r1
|
||||
L70:
|
||||
java.util.stream.Stream<T> r7 = r4.stream
|
||||
kotlin.streams.jdk8.StreamsKt$$ExternalSyntheticApiModelOutline0.m1640m(r7)
|
||||
kotlin.Unit r7 = kotlin.Unit.INSTANCE
|
||||
return r7
|
||||
L78:
|
||||
r7 = move-exception
|
||||
r4 = r6
|
||||
L7a:
|
||||
java.util.stream.Stream<T> r8 = r4.stream
|
||||
kotlin.streams.jdk8.StreamsKt$$ExternalSyntheticApiModelOutline0.m1640m(r8)
|
||||
throw r7
|
||||
L80:
|
||||
java.lang.IllegalStateException r7 = new java.lang.IllegalStateException
|
||||
java.lang.String r8 = "Stream.consumeAsFlow can be collected only once"
|
||||
java.lang.String r8 = r8.toString()
|
||||
r7.<init>(r8)
|
||||
throw r7
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: kotlinx.coroutines.stream.StreamFlow.collect(kotlinx.coroutines.flow.FlowCollector, kotlin.coroutines.Continuation):java.lang.Object");
|
||||
}
|
||||
}
|
14
02-Easy5/E5/sources/kotlinx/coroutines/stream/StreamKt.java
Normal file
14
02-Easy5/E5/sources/kotlinx/coroutines/stream/StreamKt.java
Normal file
@ -0,0 +1,14 @@
|
||||
package kotlinx.coroutines.stream;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
import kotlin.Metadata;
|
||||
import kotlinx.coroutines.flow.Flow;
|
||||
|
||||
/* compiled from: Stream.kt */
|
||||
@Metadata(d1 = {"\u0000\u000e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u001a\u001c\u0010\u0000\u001a\b\u0012\u0004\u0012\u0002H\u00020\u0001\"\u0004\b\u0000\u0010\u0002*\b\u0012\u0004\u0012\u0002H\u00020\u0003¨\u0006\u0004"}, d2 = {"consumeAsFlow", "Lkotlinx/coroutines/flow/Flow;", "T", "Ljava/util/stream/Stream;", "kotlinx-coroutines-core"}, k = 2, mv = {1, 8, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public final class StreamKt {
|
||||
public static final <T> Flow<T> consumeAsFlow(Stream<T> stream) {
|
||||
return new StreamFlow(stream);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user