You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2025/04/25 17:52:31 UTC
svn commit: r1925266 - /pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java
Author: tilman
Date: Fri Apr 25 17:52:31 2025
New Revision: 1925266
URL: http://svn.apache.org/viewvc?rev=1925266&view=rev
Log:
PDFBOX-5965: refactor, avoid creating intermediate buffer
Modified:
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java
Modified: pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java?rev=1925266&r1=1925265&r2=1925266&view=diff
==============================================================================
--- pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java (original)
+++ pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java Fri Apr 25 17:52:31 2025
@@ -195,12 +195,9 @@ public class NonSeekableRandomAccessRead
if (bufferBytes[LAST] == BUFFER_SIZE && bufferBytes[CURRENT] > 0 && bufferBytes[CURRENT] < BUFFER_SIZE)
{
// Likely EOF, we're risking losing the previous (full) buffer and get an AIOOB
- // Create a new LAST buffer that combines as much as possible of CURRENT and LAST into a new LAST.
- byte[] newBuffer = new byte[BUFFER_SIZE];
- System.arraycopy(buffers[LAST], bufferBytes[CURRENT], newBuffer, 0, BUFFER_SIZE - bufferBytes[CURRENT]);
- System.arraycopy(buffers[CURRENT], 0, newBuffer, BUFFER_SIZE - bufferBytes[CURRENT], bufferBytes[CURRENT]);
- switchBuffers(CURRENT, LAST);
- buffers[LAST] = newBuffer;
+ // Fill LAST with as much as possible data of LAST and CURRENT
+ System.arraycopy(buffers[LAST], bufferBytes[CURRENT], buffers[LAST], 0, BUFFER_SIZE - bufferBytes[CURRENT]);
+ System.arraycopy(buffers[CURRENT], 0, buffers[LAST], BUFFER_SIZE - bufferBytes[CURRENT], bufferBytes[CURRENT]);
bufferBytes[LAST] = BUFFER_SIZE;
}
else