diff --git a/code/libraries/coded-sequence/java/nu/marginalia/sequence/SequenceOperations.java b/code/libraries/coded-sequence/java/nu/marginalia/sequence/SequenceOperations.java index 665f2988..5cac0dda 100644 --- a/code/libraries/coded-sequence/java/nu/marginalia/sequence/SequenceOperations.java +++ b/code/libraries/coded-sequence/java/nu/marginalia/sequence/SequenceOperations.java @@ -183,9 +183,13 @@ public class SequenceOperations { int prevValue = values[i]; int value = prevValue; - for (; indexes[i] < len && value <= maxVal;) { + while (indexes[i] < len) { prevValue = value; value = positions[i].getInt(indexes[i]++) + offset; + if (value >= maxVal) { + indexes[i]--; // correct for overshooting the largest value smaller than maxVal + break; + } } values[i] = prevValue;