You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2024/04/06 08:12:34 UTC
svn commit: r1916827 - /pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
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;
}