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;
         }


Reply via email to