INNER CODE UNIT · Kotlin
lastPatternIndex
ReVanced/revanced-patcher · patcher/src/commonMain/kotlin/app/revanced/patcher/Matching.kt:749
var lastPatternIndex = -1
return (0 until predicates.size)
.map<Int, IndexedMatcherPredicate<T>> { patternIndex ->
predicate@{ lastMatchedIndex, currentIndex, setNextIndex ->
// Detect backtracking: if revisiting an earlier pattern position, truncate the list to that position.
if (patternIndex <= lastPatternIndex) {
while (usedPredicateIndices.size > patternIndex) {
usedPredicateIndices.removeAt(usedPredicateIndices.lastIndex)
}
}
lastPatternIndex = patternIndex
// Try each unused predicate.
for (predicateIndex in predicates.indices) {
if (predicateIndex in usedPredicateIndices) continue