- 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
777 lines
31 KiB
Java
777 lines
31 KiB
Java
package androidx.collection;
|
|
|
|
import androidx.annotation.IntRange;
|
|
import java.util.Collection;
|
|
import java.util.Iterator;
|
|
import java.util.Set;
|
|
import kotlin.ULong;
|
|
import kotlin.collections.ArraysKt___ArraysJvmKt;
|
|
import kotlin.jvm.functions.Function1;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlin.jvm.internal.SourceDebugExtension;
|
|
import kotlin.jvm.internal.markers.KMutableSet;
|
|
import kotlin.sequences.Sequence;
|
|
|
|
@SourceDebugExtension({"SMAP\nScatterSet.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ScatterSet.kt\nandroidx/collection/MutableScatterSet\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n+ 3 ScatterMap.kt\nandroidx/collection/ScatterMapKt\n+ 4 _Arrays.kt\nkotlin/collections/ArraysKt___ArraysKt\n+ 5 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n+ 6 _Sequences.kt\nkotlin/sequences/SequencesKt___SequencesKt\n+ 7 ScatterSet.kt\nandroidx/collection/ScatterSet\n+ 8 ObjectList.kt\nandroidx/collection/ObjectList\n*L\n1#1,1100:1\n1018#1,2:1285\n1022#1,5:1293\n1018#1,2:1324\n1022#1,5:1332\n1018#1,2:1349\n1022#1,5:1357\n1018#1,2:1363\n1022#1,5:1371\n1#2:1101\n1672#3,6:1102\n1826#3:1125\n1688#3:1129\n1605#3,3:1148\n1619#3:1152\n1615#3:1155\n1795#3,3:1159\n1809#3,3:1163\n1733#3:1167\n1721#3:1169\n1715#3:1170\n1728#3:1175\n1818#3:1177\n1605#3,3:1187\n1619#3:1191\n1615#3:1194\n1795#3,3:1198\n1809#3,3:1202\n1733#3:1206\n1721#3:1208\n1715#3:1209\n1728#3:1214\n1818#3:1216\n1826#3:1242\n1688#3:1246\n1826#3:1271\n1688#3:1275\n1672#3,6:1287\n1672#3,6:1298\n1605#3,3:1304\n1615#3:1307\n1619#3:1308\n1795#3,3:1309\n1809#3,3:1312\n1733#3:1315\n1721#3:1316\n1715#3:1317\n1728#3:1318\n1818#3:1319\n1682#3:1320\n1661#3:1321\n1680#3:1322\n1661#3:1323\n1672#3,6:1326\n1795#3,3:1337\n1826#3:1340\n1715#3:1341\n1685#3:1342\n1661#3:1343\n1605#3,3:1344\n1615#3:1347\n1619#3:1348\n1672#3,6:1351\n1661#3:1362\n1672#3,6:1365\n1672#3,6:1376\n1672#3,6:1382\n13579#4,2:1108\n13579#4,2:1225\n1855#5,2:1110\n1855#5,2:1229\n1295#6,2:1112\n1295#6,2:1227\n267#7,4:1114\n237#7,7:1118\n248#7,3:1126\n251#7,2:1130\n272#7,2:1132\n254#7,6:1134\n274#7:1140\n433#7:1147\n434#7:1151\n436#7,2:1153\n438#7,3:1156\n441#7:1162\n442#7:1166\n443#7:1168\n444#7,4:1171\n450#7:1176\n451#7,8:1178\n433#7:1186\n434#7:1190\n436#7,2:1192\n438#7,3:1195\n441#7:1201\n442#7:1205\n443#7:1207\n444#7,4:1210\n450#7:1215\n451#7,8:1217\n267#7,4:1231\n237#7,7:1235\n248#7,3:1243\n251#7,2:1247\n272#7,2:1249\n254#7,6:1251\n274#7:1257\n237#7,7:1264\n248#7,3:1272\n251#7,9:1276\n305#8,6:1141\n305#8,6:1258\n*S KotlinDebug\n*F\n+ 1 ScatterSet.kt\nandroidx/collection/MutableScatterSet\n*L\n857#1:1285,2\n857#1:1293,5\n917#1:1324,2\n917#1:1332,5\n989#1:1349,2\n989#1:1357,5\n1004#1:1363,2\n1004#1:1371,5\n567#1:1102,6\n692#1:1125\n692#1:1129\n714#1:1148,3\n714#1:1152\n714#1:1155\n714#1:1159,3\n714#1:1163,3\n714#1:1167\n714#1:1169\n714#1:1170\n714#1:1175\n714#1:1177\n727#1:1187,3\n727#1:1191\n727#1:1194\n727#1:1198,3\n727#1:1202,3\n727#1:1206\n727#1:1208\n727#1:1209\n727#1:1214\n727#1:1216\n823#1:1242\n823#1:1246\n843#1:1271\n843#1:1275\n857#1:1287,6\n868#1:1298,6\n882#1:1304,3\n883#1:1307\n884#1:1308\n891#1:1309,3\n892#1:1312,3\n893#1:1315\n894#1:1316\n894#1:1317\n898#1:1318\n901#1:1319\n910#1:1320\n910#1:1321\n916#1:1322\n916#1:1323\n917#1:1326,6\n931#1:1337,3\n932#1:1340\n934#1:1341\n984#1:1342\n984#1:1343\n986#1:1344,3\n987#1:1347\n989#1:1348\n989#1:1351,6\n1002#1:1362\n1004#1:1365,6\n1019#1:1376,6\n1025#1:1382,6\n662#1:1108,2\n793#1:1225,2\n672#1:1110,2\n813#1:1229,2\n682#1:1112,2\n803#1:1227,2\n692#1:1114,4\n692#1:1118,7\n692#1:1126,3\n692#1:1130,2\n692#1:1132,2\n692#1:1134,6\n692#1:1140\n714#1:1147\n714#1:1151\n714#1:1153,2\n714#1:1156,3\n714#1:1162\n714#1:1166\n714#1:1168\n714#1:1171,4\n714#1:1176\n714#1:1178,8\n727#1:1186\n727#1:1190\n727#1:1192,2\n727#1:1195,3\n727#1:1201\n727#1:1205\n727#1:1207\n727#1:1210,4\n727#1:1215\n727#1:1217,8\n823#1:1231,4\n823#1:1235,7\n823#1:1243,3\n823#1:1247,2\n823#1:1249,2\n823#1:1251,6\n823#1:1257\n843#1:1264,7\n843#1:1272,3\n843#1:1276,9\n702#1:1141,6\n833#1:1258,6\n*E\n"})
|
|
/* loaded from: classes.dex */
|
|
public final class MutableScatterSet<E> extends ScatterSet<E> {
|
|
private int growthLimit;
|
|
|
|
public MutableScatterSet() {
|
|
this(0, 1, null);
|
|
}
|
|
|
|
@SourceDebugExtension({"SMAP\nScatterSet.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ScatterSet.kt\nandroidx/collection/MutableScatterSet$MutableSetWrapper\n+ 2 ScatterSet.kt\nandroidx/collection/ScatterSet\n+ 3 ScatterMap.kt\nandroidx/collection/ScatterMapKt\n*L\n1#1,1100:1\n237#2,7:1101\n248#2,3:1109\n251#2,9:1113\n1826#3:1108\n1688#3:1112\n*S KotlinDebug\n*F\n+ 1 ScatterSet.kt\nandroidx/collection/MutableScatterSet$MutableSetWrapper\n*L\n1080#1:1101,7\n1080#1:1109,3\n1080#1:1113,9\n1080#1:1108\n1080#1:1112\n*E\n"})
|
|
public final class MutableSetWrapper extends ScatterSet<E>.SetWrapper implements Set<E>, KMutableSet {
|
|
@Override // androidx.collection.ScatterSet.SetWrapper, java.util.Set, java.util.Collection
|
|
public boolean retainAll(Collection<? extends Object> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
MutableScatterSet<E> mutableScatterSet = MutableScatterSet.this;
|
|
long[] jArr = mutableScatterSet.metadata;
|
|
int length = jArr.length - 2;
|
|
boolean z = false;
|
|
if (length >= 0) {
|
|
int i = 0;
|
|
boolean z2 = false;
|
|
while (true) {
|
|
long j = jArr[i];
|
|
if ((((~j) << 7) & j & (-9187201950435737472L)) != -9187201950435737472L) {
|
|
int i2 = 8 - ((~(i - length)) >>> 31);
|
|
for (int i3 = 0; i3 < i2; i3++) {
|
|
if ((255 & j) < 128) {
|
|
int i4 = (i << 3) + i3;
|
|
if (!elements.contains(mutableScatterSet.elements[i4])) {
|
|
mutableScatterSet.removeElementAt(i4);
|
|
z2 = true;
|
|
}
|
|
}
|
|
j >>= 8;
|
|
}
|
|
if (i2 != 8) {
|
|
return z2;
|
|
}
|
|
}
|
|
if (i == length) {
|
|
z = z2;
|
|
break;
|
|
}
|
|
i++;
|
|
}
|
|
}
|
|
return z;
|
|
}
|
|
|
|
public MutableSetWrapper() {
|
|
super();
|
|
}
|
|
|
|
@Override // androidx.collection.ScatterSet.SetWrapper, java.util.Set, java.util.Collection
|
|
public boolean add(E e) {
|
|
return MutableScatterSet.this.add(e);
|
|
}
|
|
|
|
@Override // androidx.collection.ScatterSet.SetWrapper, java.util.Set, java.util.Collection
|
|
public boolean addAll(Collection<? extends E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
return MutableScatterSet.this.addAll(elements);
|
|
}
|
|
|
|
@Override // androidx.collection.ScatterSet.SetWrapper, java.util.Set, java.util.Collection
|
|
public void clear() {
|
|
MutableScatterSet.this.clear();
|
|
}
|
|
|
|
@Override // androidx.collection.ScatterSet.SetWrapper, java.util.Set, java.util.Collection, java.lang.Iterable
|
|
public Iterator<E> iterator() {
|
|
return new MutableScatterSet$MutableSetWrapper$iterator$1(MutableScatterSet.this);
|
|
}
|
|
|
|
@Override // androidx.collection.ScatterSet.SetWrapper, java.util.Set, java.util.Collection
|
|
public boolean remove(Object obj) {
|
|
return MutableScatterSet.this.remove(obj);
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
@Override // androidx.collection.ScatterSet.SetWrapper, java.util.Set, java.util.Collection
|
|
public boolean removeAll(Collection<? extends Object> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = MutableScatterSet.this.getSize();
|
|
Iterator<? extends Object> it = elements.iterator();
|
|
while (it.hasNext()) {
|
|
MutableScatterSet.this.minusAssign((MutableScatterSet<E>) it.next());
|
|
}
|
|
return size != MutableScatterSet.this.getSize();
|
|
}
|
|
}
|
|
|
|
public final void removeIf(Function1 predicate) {
|
|
Intrinsics.checkNotNullParameter(predicate, "predicate");
|
|
Object[] objArr = this.elements;
|
|
long[] jArr = this.metadata;
|
|
int length = jArr.length - 2;
|
|
if (length < 0) {
|
|
return;
|
|
}
|
|
int i = 0;
|
|
while (true) {
|
|
long j = jArr[i];
|
|
if ((((~j) << 7) & j & (-9187201950435737472L)) != -9187201950435737472L) {
|
|
int i2 = 8 - ((~(i - length)) >>> 31);
|
|
for (int i3 = 0; i3 < i2; i3++) {
|
|
if ((255 & j) < 128) {
|
|
int i4 = (i << 3) + i3;
|
|
if (((Boolean) predicate.invoke(objArr[i4])).booleanValue()) {
|
|
removeElementAt(i4);
|
|
}
|
|
}
|
|
j >>= 8;
|
|
}
|
|
if (i2 != 8) {
|
|
return;
|
|
}
|
|
}
|
|
if (i == length) {
|
|
return;
|
|
} else {
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public final void minusAssign(ScatterSet<E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
Object[] objArr = elements.elements;
|
|
long[] jArr = elements.metadata;
|
|
int length = jArr.length - 2;
|
|
if (length < 0) {
|
|
return;
|
|
}
|
|
int i = 0;
|
|
while (true) {
|
|
long j = jArr[i];
|
|
if ((((~j) << 7) & j & (-9187201950435737472L)) != -9187201950435737472L) {
|
|
int i2 = 8 - ((~(i - length)) >>> 31);
|
|
for (int i3 = 0; i3 < i2; i3++) {
|
|
if ((255 & j) < 128) {
|
|
minusAssign((MutableScatterSet<E>) objArr[(i << 3) + i3]);
|
|
}
|
|
j >>= 8;
|
|
}
|
|
if (i2 != 8) {
|
|
return;
|
|
}
|
|
}
|
|
if (i == length) {
|
|
return;
|
|
} else {
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public final void plusAssign(ScatterSet<E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
Object[] objArr = elements.elements;
|
|
long[] jArr = elements.metadata;
|
|
int length = jArr.length - 2;
|
|
if (length < 0) {
|
|
return;
|
|
}
|
|
int i = 0;
|
|
while (true) {
|
|
long j = jArr[i];
|
|
if ((((~j) << 7) & j & (-9187201950435737472L)) != -9187201950435737472L) {
|
|
int i2 = 8 - ((~(i - length)) >>> 31);
|
|
for (int i3 = 0; i3 < i2; i3++) {
|
|
if ((255 & j) < 128) {
|
|
plusAssign((MutableScatterSet<E>) objArr[(i << 3) + i3]);
|
|
}
|
|
j >>= 8;
|
|
}
|
|
if (i2 != 8) {
|
|
return;
|
|
}
|
|
}
|
|
if (i == length) {
|
|
return;
|
|
} else {
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public final void minusAssign(ObjectList<E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
Object[] objArr = elements.content;
|
|
int i = elements._size;
|
|
for (int i2 = 0; i2 < i; i2++) {
|
|
minusAssign((MutableScatterSet<E>) objArr[i2]);
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public final void plusAssign(ObjectList<E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
Object[] objArr = elements.content;
|
|
int i = elements._size;
|
|
for (int i2 = 0; i2 < i; i2++) {
|
|
plusAssign((MutableScatterSet<E>) objArr[i2]);
|
|
}
|
|
}
|
|
|
|
public /* synthetic */ MutableScatterSet(int i, int i2, DefaultConstructorMarker defaultConstructorMarker) {
|
|
this((i2 & 1) != 0 ? 6 : i);
|
|
}
|
|
|
|
public MutableScatterSet(int i) {
|
|
super(null);
|
|
if (i < 0) {
|
|
throw new IllegalArgumentException("Capacity must be a positive value.".toString());
|
|
}
|
|
initializeStorage(ScatterMapKt.unloadedCapacity(i));
|
|
}
|
|
|
|
private final void initializeStorage(int i) {
|
|
int max = i > 0 ? Math.max(7, ScatterMapKt.normalizeCapacity(i)) : 0;
|
|
this._capacity = max;
|
|
initializeMetadata(max);
|
|
this.elements = new Object[max];
|
|
}
|
|
|
|
private final void initializeMetadata(int i) {
|
|
long[] jArr;
|
|
if (i == 0) {
|
|
jArr = ScatterMapKt.EmptyGroup;
|
|
} else {
|
|
jArr = new long[((i + 15) & (-8)) >> 3];
|
|
ArraysKt___ArraysJvmKt.fill$default(jArr, -9187201950435737472L, 0, 0, 6, (Object) null);
|
|
}
|
|
this.metadata = jArr;
|
|
int i2 = i >> 3;
|
|
long j = 255 << ((i & 7) << 3);
|
|
jArr[i2] = (jArr[i2] & (~j)) | j;
|
|
initializeGrowth();
|
|
}
|
|
|
|
private final void initializeGrowth() {
|
|
this.growthLimit = ScatterMapKt.loadedCapacity(getCapacity()) - this._size;
|
|
}
|
|
|
|
public final boolean add(E e) {
|
|
int size = getSize();
|
|
this.elements[findAbsoluteInsertIndex(e)] = e;
|
|
return getSize() != size;
|
|
}
|
|
|
|
public final void plusAssign(E e) {
|
|
this.elements[findAbsoluteInsertIndex(e)] = e;
|
|
}
|
|
|
|
public final boolean addAll(E[] elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
plusAssign((Object[]) elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean addAll(Iterable<? extends E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
plusAssign((Iterable) elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean addAll(Sequence elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
plusAssign(elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean addAll(ScatterSet<E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
plusAssign((ScatterSet) elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean addAll(ObjectList<E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
plusAssign((ObjectList) elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean removeAll(E[] elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
minusAssign((Object[]) elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean removeAll(Sequence elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
minusAssign(elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean removeAll(Iterable<? extends E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
minusAssign((Iterable) elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean removeAll(ScatterSet<E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
minusAssign((ScatterSet) elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final boolean removeAll(ObjectList<E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
int size = getSize();
|
|
minusAssign((ObjectList) elements);
|
|
return size != getSize();
|
|
}
|
|
|
|
public final void clear() {
|
|
this._size = 0;
|
|
long[] jArr = this.metadata;
|
|
if (jArr != ScatterMapKt.EmptyGroup) {
|
|
ArraysKt___ArraysJvmKt.fill$default(jArr, -9187201950435737472L, 0, 0, 6, (Object) null);
|
|
long[] jArr2 = this.metadata;
|
|
int i = this._capacity;
|
|
int i2 = i >> 3;
|
|
long j = 255 << ((i & 7) << 3);
|
|
jArr2[i2] = (jArr2[i2] & (~j)) | j;
|
|
}
|
|
ArraysKt___ArraysJvmKt.fill(this.elements, (Object) null, 0, this._capacity);
|
|
initializeGrowth();
|
|
}
|
|
|
|
@IntRange(from = 0)
|
|
public final int trim() {
|
|
int i = this._capacity;
|
|
int normalizeCapacity = ScatterMapKt.normalizeCapacity(ScatterMapKt.unloadedCapacity(this._size));
|
|
if (normalizeCapacity >= i) {
|
|
return 0;
|
|
}
|
|
resizeStorage(normalizeCapacity);
|
|
return i - this._capacity;
|
|
}
|
|
|
|
private final void adjustStorage() {
|
|
if (this._capacity > 8 && Long.compareUnsigned(ULong.m4068constructorimpl(ULong.m4068constructorimpl(this._size) * 32), ULong.m4068constructorimpl(ULong.m4068constructorimpl(this._capacity) * 25)) <= 0) {
|
|
removeDeletedMarkers();
|
|
} else {
|
|
resizeStorage(ScatterMapKt.nextCapacity(this._capacity));
|
|
}
|
|
}
|
|
|
|
private final void resizeStorage(int i) {
|
|
int i2;
|
|
long[] jArr = this.metadata;
|
|
Object[] objArr = this.elements;
|
|
int i3 = this._capacity;
|
|
initializeStorage(i);
|
|
Object[] objArr2 = this.elements;
|
|
int i4 = 0;
|
|
while (i4 < i3) {
|
|
if (((jArr[i4 >> 3] >> ((i4 & 7) << 3)) & 255) < 128) {
|
|
Object obj = objArr[i4];
|
|
int hashCode = (obj != null ? obj.hashCode() : 0) * ScatterMapKt.MurmurHashC1;
|
|
int i5 = hashCode ^ (hashCode << 16);
|
|
int findFirstAvailableSlot = findFirstAvailableSlot(i5 >>> 7);
|
|
long j = i5 & 127;
|
|
long[] jArr2 = this.metadata;
|
|
int i6 = findFirstAvailableSlot >> 3;
|
|
int i7 = (findFirstAvailableSlot & 7) << 3;
|
|
i2 = i4;
|
|
jArr2[i6] = (jArr2[i6] & (~(255 << i7))) | (j << i7);
|
|
int i8 = this._capacity;
|
|
int i9 = ((findFirstAvailableSlot - 7) & i8) + (i8 & 7);
|
|
int i10 = i9 >> 3;
|
|
int i11 = (i9 & 7) << 3;
|
|
jArr2[i10] = ((~(255 << i11)) & jArr2[i10]) | (j << i11);
|
|
objArr2[findFirstAvailableSlot] = obj;
|
|
} else {
|
|
i2 = i4;
|
|
}
|
|
i4 = i2 + 1;
|
|
}
|
|
}
|
|
|
|
public final Set<E> asMutableSet() {
|
|
return new MutableSetWrapper();
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public final void plusAssign(Sequence elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
Iterator it = elements.iterator();
|
|
while (it.hasNext()) {
|
|
plusAssign((MutableScatterSet<E>) it.next());
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public final void minusAssign(Sequence elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
Iterator it = elements.iterator();
|
|
while (it.hasNext()) {
|
|
minusAssign((MutableScatterSet<E>) it.next());
|
|
}
|
|
}
|
|
|
|
private final int findAbsoluteInsertIndex(E e) {
|
|
int hashCode = (e != null ? e.hashCode() : 0) * ScatterMapKt.MurmurHashC1;
|
|
int i = hashCode ^ (hashCode << 16);
|
|
int i2 = i >>> 7;
|
|
int i3 = i & 127;
|
|
int i4 = this._capacity;
|
|
int i5 = i2 & i4;
|
|
int i6 = 0;
|
|
while (true) {
|
|
long[] jArr = this.metadata;
|
|
int i7 = i5 >> 3;
|
|
int i8 = (i5 & 7) << 3;
|
|
long j = ((jArr[i7 + 1] << (64 - i8)) & ((-i8) >> 63)) | (jArr[i7] >>> i8);
|
|
long j2 = i3;
|
|
int i9 = i3;
|
|
long j3 = j ^ (j2 * ScatterMapKt.BitmaskLsb);
|
|
for (long j4 = (~j3) & (j3 - ScatterMapKt.BitmaskLsb) & (-9187201950435737472L); j4 != 0; j4 &= j4 - 1) {
|
|
int numberOfTrailingZeros = (i5 + (Long.numberOfTrailingZeros(j4) >> 3)) & i4;
|
|
if (Intrinsics.areEqual(this.elements[numberOfTrailingZeros], e)) {
|
|
return numberOfTrailingZeros;
|
|
}
|
|
}
|
|
if ((((~j) << 6) & j & (-9187201950435737472L)) != 0) {
|
|
int findFirstAvailableSlot = findFirstAvailableSlot(i2);
|
|
if (this.growthLimit == 0 && ((this.metadata[findFirstAvailableSlot >> 3] >> ((findFirstAvailableSlot & 7) << 3)) & 255) != 254) {
|
|
adjustStorage();
|
|
findFirstAvailableSlot = findFirstAvailableSlot(i2);
|
|
}
|
|
this._size++;
|
|
int i10 = this.growthLimit;
|
|
long[] jArr2 = this.metadata;
|
|
int i11 = findFirstAvailableSlot >> 3;
|
|
long j5 = jArr2[i11];
|
|
int i12 = (findFirstAvailableSlot & 7) << 3;
|
|
this.growthLimit = i10 - (((j5 >> i12) & 255) == 128 ? 1 : 0);
|
|
jArr2[i11] = (j5 & (~(255 << i12))) | (j2 << i12);
|
|
int i13 = this._capacity;
|
|
int i14 = ((findFirstAvailableSlot - 7) & i13) + (i13 & 7);
|
|
int i15 = i14 >> 3;
|
|
int i16 = (i14 & 7) << 3;
|
|
jArr2[i15] = ((~(255 << i16)) & jArr2[i15]) | (j2 << i16);
|
|
return findFirstAvailableSlot;
|
|
}
|
|
i6 += 8;
|
|
i5 = (i5 + i6) & i4;
|
|
i3 = i9;
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Code restructure failed: missing block: B:19:0x0069, code lost:
|
|
|
|
if (((r4 & ((~r4) << 6)) & (-9187201950435737472L)) == 0) goto L20;
|
|
*/
|
|
/* JADX WARN: Code restructure failed: missing block: B:22:0x006b, code lost:
|
|
|
|
r10 = -1;
|
|
*/
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public final void minusAssign(E r14) {
|
|
/*
|
|
r13 = this;
|
|
r0 = 0
|
|
if (r14 == 0) goto L8
|
|
int r1 = r14.hashCode()
|
|
goto L9
|
|
L8:
|
|
r1 = r0
|
|
L9:
|
|
r2 = -862048943(0xffffffffcc9e2d51, float:-8.293031E7)
|
|
int r1 = r1 * r2
|
|
int r2 = r1 << 16
|
|
r1 = r1 ^ r2
|
|
r2 = r1 & 127(0x7f, float:1.78E-43)
|
|
int r3 = r13._capacity
|
|
int r1 = r1 >>> 7
|
|
L16:
|
|
r1 = r1 & r3
|
|
long[] r4 = r13.metadata
|
|
int r5 = r1 >> 3
|
|
r6 = r1 & 7
|
|
int r6 = r6 << 3
|
|
r7 = r4[r5]
|
|
long r7 = r7 >>> r6
|
|
int r5 = r5 + 1
|
|
r9 = r4[r5]
|
|
int r4 = 64 - r6
|
|
long r4 = r9 << r4
|
|
long r9 = (long) r6
|
|
long r9 = -r9
|
|
r6 = 63
|
|
long r9 = r9 >> r6
|
|
long r4 = r4 & r9
|
|
long r4 = r4 | r7
|
|
long r6 = (long) r2
|
|
r8 = 72340172838076673(0x101010101010101, double:7.748604185489348E-304)
|
|
long r6 = r6 * r8
|
|
long r6 = r6 ^ r4
|
|
long r8 = r6 - r8
|
|
long r6 = ~r6
|
|
long r6 = r6 & r8
|
|
r8 = -9187201950435737472(0x8080808080808080, double:-2.937446524422997E-306)
|
|
long r6 = r6 & r8
|
|
L43:
|
|
r10 = 0
|
|
int r12 = (r6 > r10 ? 1 : (r6 == r10 ? 0 : -1))
|
|
if (r12 == 0) goto L62
|
|
int r10 = java.lang.Long.numberOfTrailingZeros(r6)
|
|
int r10 = r10 >> 3
|
|
int r10 = r10 + r1
|
|
r10 = r10 & r3
|
|
java.lang.Object[] r11 = r13.elements
|
|
r11 = r11[r10]
|
|
boolean r11 = kotlin.jvm.internal.Intrinsics.areEqual(r11, r14)
|
|
if (r11 == 0) goto L5c
|
|
goto L6c
|
|
L5c:
|
|
r10 = 1
|
|
long r10 = r6 - r10
|
|
long r6 = r6 & r10
|
|
goto L43
|
|
L62:
|
|
long r6 = ~r4
|
|
r12 = 6
|
|
long r6 = r6 << r12
|
|
long r4 = r4 & r6
|
|
long r4 = r4 & r8
|
|
int r4 = (r4 > r10 ? 1 : (r4 == r10 ? 0 : -1))
|
|
if (r4 == 0) goto L72
|
|
r10 = -1
|
|
L6c:
|
|
if (r10 < 0) goto L71
|
|
r13.removeElementAt(r10)
|
|
L71:
|
|
return
|
|
L72:
|
|
int r0 = r0 + 8
|
|
int r1 = r1 + r0
|
|
goto L16
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: androidx.collection.MutableScatterSet.minusAssign(java.lang.Object):void");
|
|
}
|
|
|
|
/* JADX WARN: Code restructure failed: missing block: B:20:0x006e, code lost:
|
|
|
|
if (((r7 & ((~r7) << 6)) & (-9187201950435737472L)) == 0) goto L22;
|
|
*/
|
|
/* JADX WARN: Code restructure failed: missing block: B:23:0x0070, code lost:
|
|
|
|
r11 = -1;
|
|
*/
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public final boolean remove(E r18) {
|
|
/*
|
|
r17 = this;
|
|
r0 = r17
|
|
r1 = r18
|
|
r2 = 0
|
|
if (r1 == 0) goto Lc
|
|
int r3 = r18.hashCode()
|
|
goto Ld
|
|
Lc:
|
|
r3 = r2
|
|
Ld:
|
|
r4 = -862048943(0xffffffffcc9e2d51, float:-8.293031E7)
|
|
int r3 = r3 * r4
|
|
int r4 = r3 << 16
|
|
r3 = r3 ^ r4
|
|
r4 = r3 & 127(0x7f, float:1.78E-43)
|
|
int r5 = r0._capacity
|
|
int r3 = r3 >>> 7
|
|
r3 = r3 & r5
|
|
r6 = r2
|
|
L1c:
|
|
long[] r7 = r0.metadata
|
|
int r8 = r3 >> 3
|
|
r9 = r3 & 7
|
|
int r9 = r9 << 3
|
|
r10 = r7[r8]
|
|
long r10 = r10 >>> r9
|
|
r12 = 1
|
|
int r8 = r8 + r12
|
|
r13 = r7[r8]
|
|
int r7 = 64 - r9
|
|
long r7 = r13 << r7
|
|
long r13 = (long) r9
|
|
long r13 = -r13
|
|
r9 = 63
|
|
long r13 = r13 >> r9
|
|
long r7 = r7 & r13
|
|
long r7 = r7 | r10
|
|
long r9 = (long) r4
|
|
r13 = 72340172838076673(0x101010101010101, double:7.748604185489348E-304)
|
|
long r9 = r9 * r13
|
|
long r9 = r9 ^ r7
|
|
long r13 = r9 - r13
|
|
long r9 = ~r9
|
|
long r9 = r9 & r13
|
|
r13 = -9187201950435737472(0x8080808080808080, double:-2.937446524422997E-306)
|
|
long r9 = r9 & r13
|
|
L48:
|
|
r15 = 0
|
|
int r11 = (r9 > r15 ? 1 : (r9 == r15 ? 0 : -1))
|
|
if (r11 == 0) goto L67
|
|
int r11 = java.lang.Long.numberOfTrailingZeros(r9)
|
|
int r11 = r11 >> 3
|
|
int r11 = r11 + r3
|
|
r11 = r11 & r5
|
|
java.lang.Object[] r15 = r0.elements
|
|
r15 = r15[r11]
|
|
boolean r15 = kotlin.jvm.internal.Intrinsics.areEqual(r15, r1)
|
|
if (r15 == 0) goto L61
|
|
goto L71
|
|
L61:
|
|
r15 = 1
|
|
long r15 = r9 - r15
|
|
long r9 = r9 & r15
|
|
goto L48
|
|
L67:
|
|
long r9 = ~r7
|
|
r11 = 6
|
|
long r9 = r9 << r11
|
|
long r7 = r7 & r9
|
|
long r7 = r7 & r13
|
|
int r7 = (r7 > r15 ? 1 : (r7 == r15 ? 0 : -1))
|
|
if (r7 == 0) goto L7a
|
|
r11 = -1
|
|
L71:
|
|
if (r11 < 0) goto L74
|
|
r2 = r12
|
|
L74:
|
|
if (r2 == 0) goto L79
|
|
r0.removeElementAt(r11)
|
|
L79:
|
|
return r2
|
|
L7a:
|
|
int r6 = r6 + 8
|
|
int r3 = r3 + r6
|
|
r3 = r3 & r5
|
|
goto L1c
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: androidx.collection.MutableScatterSet.remove(java.lang.Object):boolean");
|
|
}
|
|
|
|
private final void removeDeletedMarkers() {
|
|
long[] jArr = this.metadata;
|
|
int i = this._capacity;
|
|
int i2 = 0;
|
|
for (int i3 = 0; i3 < i; i3++) {
|
|
int i4 = i3 >> 3;
|
|
int i5 = (i3 & 7) << 3;
|
|
if (((jArr[i4] >> i5) & 255) == 254) {
|
|
long[] jArr2 = this.metadata;
|
|
jArr2[i4] = (128 << i5) | (jArr2[i4] & (~(255 << i5)));
|
|
int i6 = this._capacity;
|
|
int i7 = ((i3 - 7) & i6) + (i6 & 7);
|
|
int i8 = i7 >> 3;
|
|
int i9 = (i7 & 7) << 3;
|
|
jArr2[i8] = ((~(255 << i9)) & jArr2[i8]) | (128 << i9);
|
|
i2++;
|
|
}
|
|
}
|
|
this.growthLimit += i2;
|
|
}
|
|
|
|
private final void writeMetadata(int i, long j) {
|
|
long[] jArr = this.metadata;
|
|
int i2 = i >> 3;
|
|
int i3 = (i & 7) << 3;
|
|
jArr[i2] = (jArr[i2] & (~(255 << i3))) | (j << i3);
|
|
int i4 = this._capacity;
|
|
int i5 = ((i - 7) & i4) + (i4 & 7);
|
|
int i6 = i5 >> 3;
|
|
int i7 = (i5 & 7) << 3;
|
|
jArr[i6] = (j << i7) | (jArr[i6] & (~(255 << i7)));
|
|
}
|
|
|
|
public final void removeElementAt(int i) {
|
|
this._size--;
|
|
long[] jArr = this.metadata;
|
|
int i2 = i >> 3;
|
|
int i3 = (i & 7) << 3;
|
|
jArr[i2] = (jArr[i2] & (~(255 << i3))) | (254 << i3);
|
|
int i4 = this._capacity;
|
|
int i5 = ((i - 7) & i4) + (i4 & 7);
|
|
int i6 = i5 >> 3;
|
|
int i7 = (i5 & 7) << 3;
|
|
jArr[i6] = (jArr[i6] & (~(255 << i7))) | (254 << i7);
|
|
this.elements[i] = null;
|
|
}
|
|
|
|
private final int findFirstAvailableSlot(int i) {
|
|
int i2 = this._capacity;
|
|
int i3 = i & i2;
|
|
int i4 = 0;
|
|
while (true) {
|
|
long[] jArr = this.metadata;
|
|
int i5 = i3 >> 3;
|
|
int i6 = (i3 & 7) << 3;
|
|
long j = ((jArr[i5 + 1] << (64 - i6)) & ((-i6) >> 63)) | (jArr[i5] >>> i6);
|
|
long j2 = j & ((~j) << 7) & (-9187201950435737472L);
|
|
if (j2 != 0) {
|
|
return (i3 + (Long.numberOfTrailingZeros(j2) >> 3)) & i2;
|
|
}
|
|
i4 += 8;
|
|
i3 = (i3 + i4) & i2;
|
|
}
|
|
}
|
|
|
|
public final void minusAssign(Iterable<? extends E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
Iterator<? extends E> it = elements.iterator();
|
|
while (it.hasNext()) {
|
|
minusAssign((MutableScatterSet<E>) it.next());
|
|
}
|
|
}
|
|
|
|
public final void plusAssign(Iterable<? extends E> elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
Iterator<? extends E> it = elements.iterator();
|
|
while (it.hasNext()) {
|
|
plusAssign((MutableScatterSet<E>) it.next());
|
|
}
|
|
}
|
|
|
|
public final void minusAssign(E[] elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
for (E e : elements) {
|
|
minusAssign((MutableScatterSet<E>) e);
|
|
}
|
|
}
|
|
|
|
public final void plusAssign(E[] elements) {
|
|
Intrinsics.checkNotNullParameter(elements, "elements");
|
|
for (E e : elements) {
|
|
plusAssign((MutableScatterSet<E>) e);
|
|
}
|
|
}
|
|
}
|