Rabbit-R1/switch port/java/sources/androidx/compose/runtime/internal/ThreadMap.java

122 lines
4.5 KiB
Java
Raw Normal View History

2024-05-21 16:08:36 -05:00
package androidx.compose.runtime.internal;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
/* compiled from: ThreadMap.kt */
@Metadata(d1 = {"\u0000,\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u0016\n\u0000\n\u0002\u0010\u0011\n\u0002\b\u0004\n\u0002\u0010\t\n\u0002\b\u0004\n\u0002\u0010\u000b\n\u0000\b\u0000\u0018\u00002\u00020\u0001B%\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\u000e\u0010\u0006\u001a\n\u0012\u0006\u0012\u0004\u0018\u00010\u00010\u0007¢\u0006\u0002\u0010\bJ\u0010\u0010\n\u001a\u00020\u00032\u0006\u0010\u000b\u001a\u00020\fH\u0002J\u0010\u0010\r\u001a\u0004\u0018\u00010\u00012\u0006\u0010\u000b\u001a\u00020\fJ\u0018\u0010\u000e\u001a\u00020\u00002\u0006\u0010\u000b\u001a\u00020\f2\b\u0010\u000f\u001a\u0004\u0018\u00010\u0001J\u0018\u0010\u0010\u001a\u00020\u00112\u0006\u0010\u000b\u001a\u00020\f2\b\u0010\u000f\u001a\u0004\u0018\u00010\u0001R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000R\u0018\u0010\u0006\u001a\n\u0012\u0006\u0012\u0004\u0018\u00010\u00010\u0007X\u0082\u0004¢\u0006\u0004\n\u0002\u0010\\u0006\u0012"}, d2 = {"Landroidx/compose/runtime/internal/ThreadMap;", "", "size", "", "keys", "", "values", "", "(I[J[Ljava/lang/Object;)V", "[Ljava/lang/Object;", "find", "key", "", "get", "newWith", "value", "trySet", "", "runtime_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
/* loaded from: classes.dex */
public final class ThreadMap {
private final long[] keys;
private final int size;
private final Object[] values;
public ThreadMap(int i, long[] keys, Object[] values) {
Intrinsics.checkNotNullParameter(keys, "keys");
Intrinsics.checkNotNullParameter(values, "values");
this.size = i;
this.keys = keys;
this.values = values;
}
public final Object get(long key) {
int find = find(key);
if (find >= 0) {
return this.values[find];
}
return null;
}
public final boolean trySet(long key, Object value) {
int find = find(key);
if (find < 0) {
return false;
}
this.values[find] = value;
return true;
}
private final int find(long key) {
int i = this.size - 1;
if (i == -1) {
return -1;
}
int i2 = 0;
if (i == 0) {
long j = this.keys[0];
if (j == key) {
return 0;
}
return j > key ? -2 : -1;
}
while (i2 <= i) {
int i3 = (i2 + i) >>> 1;
long j2 = this.keys[i3] - key;
if (j2 < 0) {
i2 = i3 + 1;
} else {
if (j2 <= 0) {
return i3;
}
i = i3 - 1;
}
}
return -(i2 + 1);
}
public final ThreadMap newWith(long key, Object value) {
int i = this.size;
int i2 = 0;
int i3 = 0;
for (Object obj : this.values) {
if (obj != null) {
i3++;
}
}
int i4 = i3 + 1;
long[] jArr = new long[i4];
Object[] objArr = new Object[i4];
if (i4 > 1) {
int i5 = 0;
while (true) {
if (i2 >= i4 || i5 >= i) {
break;
}
long j = this.keys[i5];
Object obj2 = this.values[i5];
if (j > key) {
jArr[i2] = key;
objArr[i2] = value;
i2++;
break;
}
if (obj2 != null) {
jArr[i2] = j;
objArr[i2] = obj2;
i2++;
}
i5++;
}
if (i5 == i) {
jArr[i3] = key;
objArr[i3] = value;
} else {
while (i2 < i4) {
long j2 = this.keys[i5];
Object obj3 = this.values[i5];
if (obj3 != null) {
jArr[i2] = j2;
objArr[i2] = obj3;
i2++;
}
i5++;
}
}
} else {
jArr[0] = key;
objArr[0] = value;
}
return new ThreadMap(i4, jArr, objArr);
}
}