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/01 18:20:44 UTC

svn commit: r1717472 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Author: lehmi
Date: Tue Dec  1 17:20:44 2015
New Revision: 1717472

URL: http://svn.apache.org/viewvc?rev=1717472&view=rev
Log:
PDFBOX-3131: don't copy data

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java?rev=1717472&r1=1717471&r2=1717472&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java Tue Dec  1 17:20:44 2015
@@ -529,6 +529,13 @@ public class CFFParser
             CFFDataInput fontDictInput = new CFFDataInput(bytes);
             DictData fontDict = readDictData(fontDictInput);
 
+            // read private dict
+            DictData.Entry privateEntry = fontDict.getEntry("Private");
+            if (privateEntry == null)
+            {
+                throw new IOException("Font DICT invalid without \"Private\" entry");
+            }
+
             // font dict
             Map<String, Object> fontDictMap = new LinkedHashMap<String, Object>(4);
             fontDictMap.put("FontName", getString(fontDict, "FontName"));
@@ -538,17 +545,10 @@ public class CFFParser
             // TODO OD-4 : Add here other keys
             fontDictionaries.add(fontDictMap);
 
-            // read private dict
-            DictData.Entry privateEntry = fontDict.getEntry("Private");
-            if (privateEntry == null)
-            {
-                throw new IOException("Font DICT invalid without \"Private\" entry");
-            }
             int privateOffset = privateEntry.getNumber(1).intValue();
             input.setPosition(privateOffset);
             int privateSize = privateEntry.getNumber(0).intValue();
-            CFFDataInput privateDictData = new CFFDataInput(input.readBytes(privateSize));
-            DictData privateDict = readDictData(privateDictData);
+            DictData privateDict = readDictData(input, privateSize);
 
             // populate private dict
             Map<String, Object> privDict = readPrivateDict(privateDict);