Files
rr3-apk/decompiled-community/sources/kotlinx/coroutines/channels/ChannelSegment.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

199 lines
7.7 KiB
Java

package kotlinx.coroutines.channels;
import java.util.concurrent.atomic.AtomicReferenceArray;
import kotlin.jvm.internal.Intrinsics;
import kotlinx.coroutines.internal.Segment;
/* loaded from: classes5.dex */
public final class ChannelSegment extends Segment {
public final BufferedChannel _channel;
public final AtomicReferenceArray data;
public ChannelSegment(long j, ChannelSegment channelSegment, BufferedChannel bufferedChannel, int i) {
super(j, channelSegment, i);
this._channel = bufferedChannel;
this.data = new AtomicReferenceArray(BufferedChannelKt.SEGMENT_SIZE * 2);
}
public final BufferedChannel getChannel() {
BufferedChannel bufferedChannel = this._channel;
Intrinsics.checkNotNull(bufferedChannel);
return bufferedChannel;
}
@Override // kotlinx.coroutines.internal.Segment
public int getNumberOfSlots() {
return BufferedChannelKt.SEGMENT_SIZE;
}
public final void storeElement$kotlinx_coroutines_core(int i, Object obj) {
setElementLazy(i, obj);
}
public final Object getElement$kotlinx_coroutines_core(int i) {
return this.data.get(i * 2);
}
public final Object retrieveElement$kotlinx_coroutines_core(int i) {
Object element$kotlinx_coroutines_core = getElement$kotlinx_coroutines_core(i);
cleanElement$kotlinx_coroutines_core(i);
return element$kotlinx_coroutines_core;
}
public final void cleanElement$kotlinx_coroutines_core(int i) {
setElementLazy(i, null);
}
public final void setElementLazy(int i, Object obj) {
this.data.lazySet(i * 2, obj);
}
public final Object getState$kotlinx_coroutines_core(int i) {
return this.data.get((i * 2) + 1);
}
public final void setState$kotlinx_coroutines_core(int i, Object obj) {
this.data.set((i * 2) + 1, obj);
}
public final boolean casState$kotlinx_coroutines_core(int i, Object obj, Object obj2) {
return ChannelSegment$$ExternalSyntheticBackportWithForwarding0.m(this.data, (i * 2) + 1, obj, obj2);
}
public final Object getAndSetState$kotlinx_coroutines_core(int i, Object obj) {
return this.data.getAndSet((i * 2) + 1, obj);
}
/* JADX WARN: Code restructure failed: missing block: B:54:0x0063, code lost:
cleanElement$kotlinx_coroutines_core(r4);
*/
/* JADX WARN: Code restructure failed: missing block: B:55:0x0066, code lost:
if (r0 == false) goto L65;
*/
/* JADX WARN: Code restructure failed: missing block: B:56:0x0068, code lost:
r4 = getChannel().onUndeliveredElement;
*/
/* JADX WARN: Code restructure failed: missing block: B:57:0x006e, code lost:
if (r4 == null) goto L66;
*/
/* JADX WARN: Code restructure failed: missing block: B:58:0x0070, code lost:
kotlinx.coroutines.internal.OnUndeliveredElementKt.callUndeliveredElement(r4, r5, r6);
*/
/* JADX WARN: Code restructure failed: missing block: B:59:0x0073, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:60:?, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:61:?, code lost:
return;
*/
@Override // kotlinx.coroutines.internal.Segment
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public void onCancellation(int r4, java.lang.Throwable r5, kotlin.coroutines.CoroutineContext r6) {
/*
r3 = this;
int r5 = kotlinx.coroutines.channels.BufferedChannelKt.SEGMENT_SIZE
if (r4 < r5) goto L6
r0 = 1
goto L7
L6:
r0 = 0
L7:
if (r0 == 0) goto La
int r4 = r4 - r5
La:
java.lang.Object r5 = r3.getElement$kotlinx_coroutines_core(r4)
Le:
java.lang.Object r1 = r3.getState$kotlinx_coroutines_core(r4)
boolean r2 = r1 instanceof kotlinx.coroutines.Waiter
if (r2 != 0) goto L74
boolean r2 = r1 instanceof kotlinx.coroutines.channels.WaiterEB
if (r2 == 0) goto L1b
goto L74
L1b:
kotlinx.coroutines.internal.Symbol r2 = kotlinx.coroutines.channels.BufferedChannelKt.access$getINTERRUPTED_SEND$p()
if (r1 == r2) goto L63
kotlinx.coroutines.internal.Symbol r2 = kotlinx.coroutines.channels.BufferedChannelKt.access$getINTERRUPTED_RCV$p()
if (r1 != r2) goto L28
goto L63
L28:
kotlinx.coroutines.internal.Symbol r2 = kotlinx.coroutines.channels.BufferedChannelKt.access$getRESUMING_BY_EB$p()
if (r1 == r2) goto Le
kotlinx.coroutines.internal.Symbol r2 = kotlinx.coroutines.channels.BufferedChannelKt.access$getRESUMING_BY_RCV$p()
if (r1 != r2) goto L35
goto Le
L35:
kotlinx.coroutines.internal.Symbol r4 = kotlinx.coroutines.channels.BufferedChannelKt.access$getDONE_RCV$p()
if (r1 == r4) goto L62
kotlinx.coroutines.internal.Symbol r4 = kotlinx.coroutines.channels.BufferedChannelKt.BUFFERED
if (r1 != r4) goto L40
goto L62
L40:
kotlinx.coroutines.internal.Symbol r4 = kotlinx.coroutines.channels.BufferedChannelKt.getCHANNEL_CLOSED()
if (r1 != r4) goto L47
return
L47:
java.lang.IllegalStateException r4 = new java.lang.IllegalStateException
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r6 = "unexpected state: "
r5.append(r6)
r5.append(r1)
java.lang.String r5 = r5.toString()
java.lang.String r5 = r5.toString()
r4.<init>(r5)
throw r4
L62:
return
L63:
r3.cleanElement$kotlinx_coroutines_core(r4)
if (r0 == 0) goto L73
kotlinx.coroutines.channels.BufferedChannel r4 = r3.getChannel()
kotlin.jvm.functions.Function1 r4 = r4.onUndeliveredElement
if (r4 == 0) goto L73
kotlinx.coroutines.internal.OnUndeliveredElementKt.callUndeliveredElement(r4, r5, r6)
L73:
return
L74:
if (r0 == 0) goto L7b
kotlinx.coroutines.internal.Symbol r2 = kotlinx.coroutines.channels.BufferedChannelKt.access$getINTERRUPTED_SEND$p()
goto L7f
L7b:
kotlinx.coroutines.internal.Symbol r2 = kotlinx.coroutines.channels.BufferedChannelKt.access$getINTERRUPTED_RCV$p()
L7f:
boolean r1 = r3.casState$kotlinx_coroutines_core(r4, r1, r2)
if (r1 == 0) goto Le
r3.cleanElement$kotlinx_coroutines_core(r4)
r1 = r0 ^ 1
r3.onCancelledRequest(r4, r1)
if (r0 == 0) goto L9a
kotlinx.coroutines.channels.BufferedChannel r4 = r3.getChannel()
kotlin.jvm.functions.Function1 r4 = r4.onUndeliveredElement
if (r4 == 0) goto L9a
kotlinx.coroutines.internal.OnUndeliveredElementKt.callUndeliveredElement(r4, r5, r6)
L9a:
return
*/
throw new UnsupportedOperationException("Method not decompiled: kotlinx.coroutines.channels.ChannelSegment.onCancellation(int, java.lang.Throwable, kotlin.coroutines.CoroutineContext):void");
}
public final void onCancelledRequest(int i, boolean z) {
if (z) {
getChannel().waitExpandBufferCompletion$kotlinx_coroutines_core((this.id * BufferedChannelKt.SEGMENT_SIZE) + i);
}
onSlotCleaned();
}
}