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 2015/12/23 17:00:16 UTC

svn commit: r1721556 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/BufferedRandomAccessFile.java

Author: lehmi
Date: Wed Dec 23 16:00:16 2015
New Revision: 1721556

URL: http://svn.apache.org/viewvc?rev=1721556&view=rev
Log:
PDFBOX-3131: use the buffer and System.arraycopy instead of reading one byte after the other

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/BufferedRandomAccessFile.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/BufferedRandomAccessFile.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/BufferedRandomAccessFile.java?rev=1721556&r1=1721555&r2=1721556&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/BufferedRandomAccessFile.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/BufferedRandomAccessFile.java Wed Dec 23 16:00:16 2015
@@ -155,19 +155,17 @@ public class BufferedRandomAccessFile ex
             bufpos += len;
             return len;
         }
-        for (int i = 0; i < len; i++)
+        System.arraycopy(buffer, bufpos, b, off, leftover);
+        bufpos += leftover;
+        if (fillBuffer() > 0)
         {
-            int c = this.read();
-            if (c != -1)
+            int bytesRead = read(b, off + leftover, len - leftover);
+            if (bytesRead > 0)
             {
-                b[off + i] = (byte) c;
-            }
-            else
-            {
-                return i;
+                leftover += bytesRead;
             }
         }
-        return len;
+        return leftover;
     }
 
     /**