Loading services/permission/java/com/android/server/permission/access/collection/IndexedList.kt +16 −10 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ package com.android.server.permission.access.collection typealias IndexedList<T> = ArrayList<T> inline fun <T> IndexedList<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, this[index])) { forEachIndexed { index, element -> if (!predicate(index, element)) { return false } } Loading @@ -28,8 +28,8 @@ inline fun <T> IndexedList<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolea } inline fun <T> IndexedList<T>.anyIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, this[index])) { forEachIndexed { index, element -> if (predicate(index, element)) { return true } } Loading @@ -45,6 +45,12 @@ inline fun <T> IndexedList<T>.forEachIndexed(action: (Int, T) -> Unit) { } } inline fun <T> IndexedList<T>.forEachReversedIndexed(action: (Int, T) -> Unit) { for (index in lastIndex downTo 0) { action(index, this[index]) } } @Suppress("NOTHING_TO_INLINE") inline operator fun <T> IndexedList<T>.minus(element: T): IndexedList<T> = copy().apply { this -= element } Loading @@ -55,8 +61,8 @@ inline operator fun <T> IndexedList<T>.minusAssign(element: T) { } inline fun <T> IndexedList<T>.noneIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, this[index])) { forEachIndexed { index, element -> if (predicate(index, element)) { return false } } Loading @@ -74,8 +80,8 @@ inline operator fun <T> IndexedList<T>.plusAssign(element: T) { inline fun <T> IndexedList<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, this[index])) { forEachReversedIndexed { index, element -> if (predicate(index, element)) { removeAt(index) isChanged = true } Loading @@ -85,8 +91,8 @@ inline fun <T> IndexedList<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): inline fun <T> IndexedList<T>.retainAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, this[index])) { forEachReversedIndexed { index, element -> if (!predicate(index, element)) { removeAt(index) isChanged = true } Loading services/permission/java/com/android/server/permission/access/collection/IndexedListSet.kt +16 −10 Original line number Diff line number Diff line Loading @@ -70,8 +70,8 @@ class IndexedListSet<T> private constructor( } inline fun <T> IndexedListSet<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (!predicate(index, element)) { return false } } Loading @@ -79,8 +79,8 @@ inline fun <T> IndexedListSet<T>.allIndexed(predicate: (Int, T) -> Boolean): Boo } inline fun <T> IndexedListSet<T>.anyIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (predicate(index, element)) { return true } } Loading @@ -93,6 +93,12 @@ inline fun <T> IndexedListSet<T>.forEachIndexed(action: (Int, T) -> Unit) { } } inline fun <T> IndexedListSet<T>.forEachReversedIndexed(action: (Int, T) -> Unit) { for (index in lastIndex downTo 0) { action(index, elementAt(index)) } } inline val <T> IndexedListSet<T>.lastIndex: Int get() = size - 1 Loading @@ -106,8 +112,8 @@ inline operator fun <T> IndexedListSet<T>.minusAssign(element: T) { } inline fun <T> IndexedListSet<T>.noneIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (predicate(index, element)) { return false } } Loading @@ -125,8 +131,8 @@ inline operator fun <T> IndexedListSet<T>.plusAssign(element: T) { inline fun <T> IndexedListSet<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, elementAt(index))) { forEachReversedIndexed { index, element -> if (predicate(index, element)) { removeAt(index) isChanged = true } Loading @@ -136,8 +142,8 @@ inline fun <T> IndexedListSet<T>.removeAllIndexed(predicate: (Int, T) -> Boolean inline fun <T> IndexedListSet<T>.retainAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, elementAt(index))) { forEachReversedIndexed { index, element -> if (!predicate(index, element)) { removeAt(index) isChanged = true } Loading services/permission/java/com/android/server/permission/access/collection/IndexedMap.kt +25 −10 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ import android.util.ArrayMap typealias IndexedMap<K, V> = ArrayMap<K, V> inline fun <K, V> IndexedMap<K, V>.allIndexed(predicate: (Int, K, V) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (!predicate(index, key, value)) { return false } } Loading @@ -30,8 +30,8 @@ inline fun <K, V> IndexedMap<K, V>.allIndexed(predicate: (Int, K, V) -> Boolean) } inline fun <K, V> IndexedMap<K, V>.anyIndexed(predicate: (Int, K, V) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (predicate(index, key, value)) { return true } } Loading @@ -46,8 +46,8 @@ inline fun <K, V> IndexedMap<K, V>.copy(copyValue: (V) -> V): IndexedMap<K, V> = } inline fun <K, V, R> IndexedMap<K, V>.firstNotNullOfOrNullIndexed(transform: (Int, K, V) -> R): R? { for (index in 0 until size) { transform(index, keyAt(index), valueAt(index))?.let { return it } forEachIndexed { index, key, value -> transform(index, key, value)?.let { return it } } return null } Loading @@ -64,6 +64,12 @@ inline fun <K, V> IndexedMap<K, V>.forEachKeyIndexed(action: (Int, K) -> Unit) { } } inline fun <K, V> IndexedMap<K, V>.forEachReversedIndexed(action: (Int, K, V) -> Unit) { for (index in lastIndex downTo 0) { action(index, keyAt(index), valueAt(index)) } } inline fun <K, V> IndexedMap<K, V>.forEachValueIndexed(action: (Int, V) -> Unit) { for (index in 0 until size) { action(index, valueAt(index)) Loading @@ -90,6 +96,15 @@ inline operator fun <K, V> IndexedMap<K, V>.minusAssign(key: K) { remove(key) } inline fun <K, V> IndexedMap<K, V>.noneIndexed(predicate: (Int, K, V) -> Boolean): Boolean { forEachIndexed { index, key, value -> if (predicate(index, key, value)) { return false } } return true } @Suppress("NOTHING_TO_INLINE") inline fun <K, V> IndexedMap<K, V>.putWithDefault(key: K, value: V, defaultValue: V): V { val index = indexOfKey(key) Loading @@ -113,8 +128,8 @@ inline fun <K, V> IndexedMap<K, V>.putWithDefault(key: K, value: V, defaultValue inline fun <K, V> IndexedMap<K, V>.removeAllIndexed(predicate: (Int, K, V) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, keyAt(index), valueAt(index))) { forEachReversedIndexed { index, key, value -> if (predicate(index, key, value)) { removeAt(index) isChanged = true } Loading @@ -124,8 +139,8 @@ inline fun <K, V> IndexedMap<K, V>.removeAllIndexed(predicate: (Int, K, V) -> Bo inline fun <K, V> IndexedMap<K, V>.retainAllIndexed(predicate: (Int, K, V) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, keyAt(index), valueAt(index))) { forEachReversedIndexed { index, key, value -> if (!predicate(index, key, value)) { removeAt(index) isChanged = true } Loading services/permission/java/com/android/server/permission/access/collection/IndexedSet.kt +16 −10 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ import android.util.ArraySet typealias IndexedSet<T> = ArraySet<T> inline fun <T> IndexedSet<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (!predicate(index, element)) { return false } } Loading @@ -30,8 +30,8 @@ inline fun <T> IndexedSet<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolean } inline fun <T> IndexedSet<T>.anyIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (predicate(index, element)) { return true } } Loading @@ -50,6 +50,12 @@ inline fun <T> IndexedSet<T>.forEachIndexed(action: (Int, T) -> Unit) { } } inline fun <T> IndexedSet<T>.forEachReversedIndexed(action: (Int, T) -> Unit) { for (index in lastIndex downTo 0) { action(index, elementAt(index)) } } inline val <T> IndexedSet<T>.lastIndex: Int get() = size - 1 Loading @@ -63,8 +69,8 @@ inline operator fun <T> IndexedSet<T>.minusAssign(element: T) { } inline fun <T> IndexedSet<T>.noneIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (predicate(index, element)) { return false } } Loading @@ -82,8 +88,8 @@ inline operator fun <T> IndexedSet<T>.plusAssign(element: T) { inline fun <T> IndexedSet<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, elementAt(index))) { forEachReversedIndexed { index, element -> if (predicate(index, element)) { removeAt(index) isChanged = true } Loading @@ -93,8 +99,8 @@ inline fun <T> IndexedSet<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): B inline fun <T> IndexedSet<T>.retainAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, elementAt(index))) { forEachReversedIndexed { index, element -> if (!predicate(index, element)) { removeAt(index) isChanged = true } Loading services/permission/java/com/android/server/permission/access/collection/IntMap.kt +18 −12 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ import android.util.SparseArray typealias IntMap<T> = SparseArray<T> inline fun <T> IntMap<T>.allIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (!predicate(index, key, value)) { return false } } Loading @@ -30,8 +30,8 @@ inline fun <T> IntMap<T>.allIndexed(predicate: (Int, Int, T) -> Boolean): Boolea } inline fun <T> IntMap<T>.anyIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (predicate(index, key, value)) { return true } } Loading @@ -46,8 +46,8 @@ inline fun <T> IntMap<T>.copy(copyValue: (T) -> T): IntMap<T> = } inline fun <T, R> IntMap<T>.firstNotNullOfOrNullIndexed(transform: (Int, Int, T) -> R): R? { for (index in 0 until size) { transform(index, keyAt(index), valueAt(index))?.let { return it } forEachIndexed { index, key, value -> transform(index, key, value)?.let { return it } } return null } Loading @@ -64,6 +64,12 @@ inline fun <T> IntMap<T>.forEachKeyIndexed(action: (Int, Int) -> Unit) { } } inline fun <T> IntMap<T>.forEachReversedIndexed(action: (Int, Int, T) -> Unit) { for (index in lastIndex downTo 0) { action(index, keyAt(index), valueAt(index)) } } inline fun <T> IntMap<T>.forEachValueIndexed(action: (Int, T) -> Unit) { for (index in 0 until size) { action(index, valueAt(index)) Loading Loading @@ -91,8 +97,8 @@ inline operator fun <T> IntMap<T>.minusAssign(key: Int) { } inline fun <T> IntMap<T>.noneIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (predicate(index, key, value)) { return false } } Loading Loading @@ -122,8 +128,8 @@ inline fun <T> IntMap<T>.putWithDefault(key: Int, value: T, defaultValue: T): T inline fun <T> IntMap<T>.removeAllIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, keyAt(index), valueAt(index))) { forEachReversedIndexed { index, key, value -> if (predicate(index, key, value)) { removeAt(index) isChanged = true } Loading @@ -133,8 +139,8 @@ inline fun <T> IntMap<T>.removeAllIndexed(predicate: (Int, Int, T) -> Boolean): inline fun <T> IntMap<T>.retainAllIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, keyAt(index), valueAt(index))) { forEachReversedIndexed { index, key, value -> if (!predicate(index, key, value)) { removeAt(index) isChanged = true } Loading Loading
services/permission/java/com/android/server/permission/access/collection/IndexedList.kt +16 −10 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ package com.android.server.permission.access.collection typealias IndexedList<T> = ArrayList<T> inline fun <T> IndexedList<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, this[index])) { forEachIndexed { index, element -> if (!predicate(index, element)) { return false } } Loading @@ -28,8 +28,8 @@ inline fun <T> IndexedList<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolea } inline fun <T> IndexedList<T>.anyIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, this[index])) { forEachIndexed { index, element -> if (predicate(index, element)) { return true } } Loading @@ -45,6 +45,12 @@ inline fun <T> IndexedList<T>.forEachIndexed(action: (Int, T) -> Unit) { } } inline fun <T> IndexedList<T>.forEachReversedIndexed(action: (Int, T) -> Unit) { for (index in lastIndex downTo 0) { action(index, this[index]) } } @Suppress("NOTHING_TO_INLINE") inline operator fun <T> IndexedList<T>.minus(element: T): IndexedList<T> = copy().apply { this -= element } Loading @@ -55,8 +61,8 @@ inline operator fun <T> IndexedList<T>.minusAssign(element: T) { } inline fun <T> IndexedList<T>.noneIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, this[index])) { forEachIndexed { index, element -> if (predicate(index, element)) { return false } } Loading @@ -74,8 +80,8 @@ inline operator fun <T> IndexedList<T>.plusAssign(element: T) { inline fun <T> IndexedList<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, this[index])) { forEachReversedIndexed { index, element -> if (predicate(index, element)) { removeAt(index) isChanged = true } Loading @@ -85,8 +91,8 @@ inline fun <T> IndexedList<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): inline fun <T> IndexedList<T>.retainAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, this[index])) { forEachReversedIndexed { index, element -> if (!predicate(index, element)) { removeAt(index) isChanged = true } Loading
services/permission/java/com/android/server/permission/access/collection/IndexedListSet.kt +16 −10 Original line number Diff line number Diff line Loading @@ -70,8 +70,8 @@ class IndexedListSet<T> private constructor( } inline fun <T> IndexedListSet<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (!predicate(index, element)) { return false } } Loading @@ -79,8 +79,8 @@ inline fun <T> IndexedListSet<T>.allIndexed(predicate: (Int, T) -> Boolean): Boo } inline fun <T> IndexedListSet<T>.anyIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (predicate(index, element)) { return true } } Loading @@ -93,6 +93,12 @@ inline fun <T> IndexedListSet<T>.forEachIndexed(action: (Int, T) -> Unit) { } } inline fun <T> IndexedListSet<T>.forEachReversedIndexed(action: (Int, T) -> Unit) { for (index in lastIndex downTo 0) { action(index, elementAt(index)) } } inline val <T> IndexedListSet<T>.lastIndex: Int get() = size - 1 Loading @@ -106,8 +112,8 @@ inline operator fun <T> IndexedListSet<T>.minusAssign(element: T) { } inline fun <T> IndexedListSet<T>.noneIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (predicate(index, element)) { return false } } Loading @@ -125,8 +131,8 @@ inline operator fun <T> IndexedListSet<T>.plusAssign(element: T) { inline fun <T> IndexedListSet<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, elementAt(index))) { forEachReversedIndexed { index, element -> if (predicate(index, element)) { removeAt(index) isChanged = true } Loading @@ -136,8 +142,8 @@ inline fun <T> IndexedListSet<T>.removeAllIndexed(predicate: (Int, T) -> Boolean inline fun <T> IndexedListSet<T>.retainAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, elementAt(index))) { forEachReversedIndexed { index, element -> if (!predicate(index, element)) { removeAt(index) isChanged = true } Loading
services/permission/java/com/android/server/permission/access/collection/IndexedMap.kt +25 −10 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ import android.util.ArrayMap typealias IndexedMap<K, V> = ArrayMap<K, V> inline fun <K, V> IndexedMap<K, V>.allIndexed(predicate: (Int, K, V) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (!predicate(index, key, value)) { return false } } Loading @@ -30,8 +30,8 @@ inline fun <K, V> IndexedMap<K, V>.allIndexed(predicate: (Int, K, V) -> Boolean) } inline fun <K, V> IndexedMap<K, V>.anyIndexed(predicate: (Int, K, V) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (predicate(index, key, value)) { return true } } Loading @@ -46,8 +46,8 @@ inline fun <K, V> IndexedMap<K, V>.copy(copyValue: (V) -> V): IndexedMap<K, V> = } inline fun <K, V, R> IndexedMap<K, V>.firstNotNullOfOrNullIndexed(transform: (Int, K, V) -> R): R? { for (index in 0 until size) { transform(index, keyAt(index), valueAt(index))?.let { return it } forEachIndexed { index, key, value -> transform(index, key, value)?.let { return it } } return null } Loading @@ -64,6 +64,12 @@ inline fun <K, V> IndexedMap<K, V>.forEachKeyIndexed(action: (Int, K) -> Unit) { } } inline fun <K, V> IndexedMap<K, V>.forEachReversedIndexed(action: (Int, K, V) -> Unit) { for (index in lastIndex downTo 0) { action(index, keyAt(index), valueAt(index)) } } inline fun <K, V> IndexedMap<K, V>.forEachValueIndexed(action: (Int, V) -> Unit) { for (index in 0 until size) { action(index, valueAt(index)) Loading @@ -90,6 +96,15 @@ inline operator fun <K, V> IndexedMap<K, V>.minusAssign(key: K) { remove(key) } inline fun <K, V> IndexedMap<K, V>.noneIndexed(predicate: (Int, K, V) -> Boolean): Boolean { forEachIndexed { index, key, value -> if (predicate(index, key, value)) { return false } } return true } @Suppress("NOTHING_TO_INLINE") inline fun <K, V> IndexedMap<K, V>.putWithDefault(key: K, value: V, defaultValue: V): V { val index = indexOfKey(key) Loading @@ -113,8 +128,8 @@ inline fun <K, V> IndexedMap<K, V>.putWithDefault(key: K, value: V, defaultValue inline fun <K, V> IndexedMap<K, V>.removeAllIndexed(predicate: (Int, K, V) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, keyAt(index), valueAt(index))) { forEachReversedIndexed { index, key, value -> if (predicate(index, key, value)) { removeAt(index) isChanged = true } Loading @@ -124,8 +139,8 @@ inline fun <K, V> IndexedMap<K, V>.removeAllIndexed(predicate: (Int, K, V) -> Bo inline fun <K, V> IndexedMap<K, V>.retainAllIndexed(predicate: (Int, K, V) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, keyAt(index), valueAt(index))) { forEachReversedIndexed { index, key, value -> if (!predicate(index, key, value)) { removeAt(index) isChanged = true } Loading
services/permission/java/com/android/server/permission/access/collection/IndexedSet.kt +16 −10 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ import android.util.ArraySet typealias IndexedSet<T> = ArraySet<T> inline fun <T> IndexedSet<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (!predicate(index, element)) { return false } } Loading @@ -30,8 +30,8 @@ inline fun <T> IndexedSet<T>.allIndexed(predicate: (Int, T) -> Boolean): Boolean } inline fun <T> IndexedSet<T>.anyIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (predicate(index, element)) { return true } } Loading @@ -50,6 +50,12 @@ inline fun <T> IndexedSet<T>.forEachIndexed(action: (Int, T) -> Unit) { } } inline fun <T> IndexedSet<T>.forEachReversedIndexed(action: (Int, T) -> Unit) { for (index in lastIndex downTo 0) { action(index, elementAt(index)) } } inline val <T> IndexedSet<T>.lastIndex: Int get() = size - 1 Loading @@ -63,8 +69,8 @@ inline operator fun <T> IndexedSet<T>.minusAssign(element: T) { } inline fun <T> IndexedSet<T>.noneIndexed(predicate: (Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, elementAt(index))) { forEachIndexed { index, element -> if (predicate(index, element)) { return false } } Loading @@ -82,8 +88,8 @@ inline operator fun <T> IndexedSet<T>.plusAssign(element: T) { inline fun <T> IndexedSet<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, elementAt(index))) { forEachReversedIndexed { index, element -> if (predicate(index, element)) { removeAt(index) isChanged = true } Loading @@ -93,8 +99,8 @@ inline fun <T> IndexedSet<T>.removeAllIndexed(predicate: (Int, T) -> Boolean): B inline fun <T> IndexedSet<T>.retainAllIndexed(predicate: (Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, elementAt(index))) { forEachReversedIndexed { index, element -> if (!predicate(index, element)) { removeAt(index) isChanged = true } Loading
services/permission/java/com/android/server/permission/access/collection/IntMap.kt +18 −12 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ import android.util.SparseArray typealias IntMap<T> = SparseArray<T> inline fun <T> IntMap<T>.allIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (!predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (!predicate(index, key, value)) { return false } } Loading @@ -30,8 +30,8 @@ inline fun <T> IntMap<T>.allIndexed(predicate: (Int, Int, T) -> Boolean): Boolea } inline fun <T> IntMap<T>.anyIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (predicate(index, key, value)) { return true } } Loading @@ -46,8 +46,8 @@ inline fun <T> IntMap<T>.copy(copyValue: (T) -> T): IntMap<T> = } inline fun <T, R> IntMap<T>.firstNotNullOfOrNullIndexed(transform: (Int, Int, T) -> R): R? { for (index in 0 until size) { transform(index, keyAt(index), valueAt(index))?.let { return it } forEachIndexed { index, key, value -> transform(index, key, value)?.let { return it } } return null } Loading @@ -64,6 +64,12 @@ inline fun <T> IntMap<T>.forEachKeyIndexed(action: (Int, Int) -> Unit) { } } inline fun <T> IntMap<T>.forEachReversedIndexed(action: (Int, Int, T) -> Unit) { for (index in lastIndex downTo 0) { action(index, keyAt(index), valueAt(index)) } } inline fun <T> IntMap<T>.forEachValueIndexed(action: (Int, T) -> Unit) { for (index in 0 until size) { action(index, valueAt(index)) Loading Loading @@ -91,8 +97,8 @@ inline operator fun <T> IntMap<T>.minusAssign(key: Int) { } inline fun <T> IntMap<T>.noneIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { for (index in 0 until size) { if (predicate(index, keyAt(index), valueAt(index))) { forEachIndexed { index, key, value -> if (predicate(index, key, value)) { return false } } Loading Loading @@ -122,8 +128,8 @@ inline fun <T> IntMap<T>.putWithDefault(key: Int, value: T, defaultValue: T): T inline fun <T> IntMap<T>.removeAllIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (predicate(index, keyAt(index), valueAt(index))) { forEachReversedIndexed { index, key, value -> if (predicate(index, key, value)) { removeAt(index) isChanged = true } Loading @@ -133,8 +139,8 @@ inline fun <T> IntMap<T>.removeAllIndexed(predicate: (Int, Int, T) -> Boolean): inline fun <T> IntMap<T>.retainAllIndexed(predicate: (Int, Int, T) -> Boolean): Boolean { var isChanged = false for (index in lastIndex downTo 0) { if (!predicate(index, keyAt(index), valueAt(index))) { forEachReversedIndexed { index, key, value -> if (!predicate(index, key, value)) { removeAt(index) isChanged = true } Loading