package androidx.compose.runtime.snapshots;

import androidx.compose.runtime.internal.StabilityInferred;
import kotlin.jvm.internal.o;
import x4.AbstractC3250p;

/* JADX INFO: loaded from: classes.dex */
@StabilityInferred(parameters = 0)
public final class SnapshotDoubleIndexHeap {
    public static final int $stable = 8;
    private int firstFreeHandle;
    private int[] handles;
    private int size;
    private long[] values = SnapshotId_jvmKt.snapshotIdArrayWithCapacity(16);
    private int[] index = new int[16];

    public SnapshotDoubleIndexHeap() {
        int[] iArr = new int[16];
        int i6 = 0;
        while (i6 < 16) {
            int i7 = i6 + 1;
            iArr[i6] = i7;
            i6 = i7;
        }
        this.handles = iArr;
    }

    private final int allocateHandle() {
        int length = this.handles.length;
        if (this.firstFreeHandle >= length) {
            int i6 = length * 2;
            int[] iArr = new int[i6];
            int i7 = 0;
            while (i7 < i6) {
                int i8 = i7 + 1;
                iArr[i7] = i8;
                i7 = i8;
            }
            AbstractC3250p.C(0, 0, 14, this.handles, iArr);
            this.handles = iArr;
        }
        int i9 = this.firstFreeHandle;
        this.firstFreeHandle = this.handles[i9];
        return i9;
    }

    private final void ensure(int i6) {
        int length = this.values.length;
        if (i6 <= length) {
            return;
        }
        int i7 = length * 2;
        long[] jArrSnapshotIdArrayWithCapacity = SnapshotId_jvmKt.snapshotIdArrayWithCapacity(i7);
        int[] iArr = new int[i7];
        long[] jArr = this.values;
        AbstractC3250p.A(jArr, jArrSnapshotIdArrayWithCapacity, 0, 0, jArr.length);
        AbstractC3250p.C(0, 0, 14, this.index, iArr);
        this.values = jArrSnapshotIdArrayWithCapacity;
        this.index = iArr;
    }

    private final void freeHandle(int i6) {
        this.handles[i6] = this.firstFreeHandle;
        this.firstFreeHandle = i6;
    }

    public static /* synthetic */ long lowestOrDefault$default(SnapshotDoubleIndexHeap snapshotDoubleIndexHeap, long j4, int i6, Object obj) {
        if ((i6 & 1) != 0) {
            j4 = 0;
        }
        return snapshotDoubleIndexHeap.lowestOrDefault(j4);
    }

    private final void shiftDown(int i6) {
        long[] jArr = this.values;
        int i7 = this.size >> 1;
        while (i6 < i7) {
            int i8 = (i6 + 1) << 1;
            int i9 = i8 - 1;
            if (i8 >= this.size || o.j(jArr[i8], jArr[i9]) >= 0) {
                if (o.j(jArr[i9], jArr[i6]) >= 0) {
                    return;
                }
                swap(i9, i6);
                i6 = i9;
            } else {
                if (o.j(jArr[i8], jArr[i6]) >= 0) {
                    return;
                }
                swap(i8, i6);
                i6 = i8;
            }
        }
    }

    private final void shiftUp(int i6) {
        long[] jArr = this.values;
        long j4 = jArr[i6];
        while (i6 > 0) {
            int i7 = ((i6 + 1) >> 1) - 1;
            if (o.j(jArr[i7], j4) <= 0) {
                return;
            }
            swap(i7, i6);
            i6 = i7;
        }
    }

    private final void swap(int i6, int i7) {
        long[] jArr = this.values;
        int[] iArr = this.index;
        int[] iArr2 = this.handles;
        long j4 = jArr[i6];
        jArr[i6] = jArr[i7];
        jArr[i7] = j4;
        int i8 = iArr[i6];
        int i9 = iArr[i7];
        iArr[i6] = i9;
        iArr[i7] = i8;
        iArr2[i9] = i6;
        iArr2[i8] = i7;
    }

    public final int add(long j4) {
        ensure(this.size + 1);
        int i6 = this.size;
        this.size = i6 + 1;
        int iAllocateHandle = allocateHandle();
        this.values[i6] = j4;
        this.index[i6] = iAllocateHandle;
        this.handles[iAllocateHandle] = i6;
        shiftUp(i6);
        return iAllocateHandle;
    }

    public final int getSize() {
        return this.size;
    }

    public final long lowestOrDefault(long j4) {
        return this.size > 0 ? this.values[0] : j4;
    }

    public final void remove(int i6) {
        int i7 = this.handles[i6];
        swap(i7, this.size - 1);
        this.size--;
        shiftUp(i7);
        shiftDown(i7);
        freeHandle(i6);
    }

    public final void validate() {
        int i6 = this.size;
        int i7 = 1;
        while (i7 < i6) {
            int i8 = i7 + 1;
            long[] jArr = this.values;
            if (o.j(jArr[(i8 >> 1) - 1], jArr[i7]) > 0) {
                throw new IllegalStateException(("Index " + i7 + " is out of place").toString());
            }
            i7 = i8;
        }
    }

    public final void validateHandle(int i6, long j4) {
        int i7 = this.handles[i6];
        if (this.index[i7] != i6) {
            throw new IllegalStateException(("Index for handle " + i6 + " is corrupted").toString());
        }
        if (this.values[i7] == j4) {
            return;
        }
        StringBuilder sbR = com.google.android.recaptcha.internal.a.r(i6, "Value for handle ", " was ");
        sbR.append(this.values[i7]);
        sbR.append(" but was supposed to be ");
        sbR.append(j4);
        throw new IllegalStateException(sbR.toString().toString());
    }
}
