Author: lehmi Date: Sat Apr 6 08:12:34 2024 New Revision: 1916827 URL: http://svn.apache.org/viewvc?rev=1916827&view=rev Log: PDFBOX-5799: search forward/backwards if the new position is after/before the current position to optimize the search for the correct stream
Modified: pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java Modified: pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java?rev=1916827&r1=1916826&r2=1916827&view=diff ============================================================================== --- pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java (original) +++ pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java Sat Apr 6 08:12:34 2024 @@ -155,13 +155,16 @@ public class SequenceRandomAccessRead im } else { - for (int i = 0; i < numberOfReader; i++) + // search forward/backwards if the new position is after/before the current position + int increment = position < currentPosition ? -1 : 1; + for (int i = currentIndex; i < numberOfReader && i >= 0;) { if (position >= startPositions[i] && position <= endPositions[i]) { currentIndex = i; break; } + i += increment; } currentPosition = position; }