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 2013/03/02 12:57:25 UTC

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

Author: lehmi
Date: Sat Mar  2 11:57:25 2013
New Revision: 1451878

URL: http://svn.apache.org/r1451878
Log:
PDFBOX-1464: remove unnecessary linear searches as proposed by Adrian Nistor

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=1451878&r1=1451877&r2=1451878&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 Sat Mar  2 11:57:25 2013
@@ -865,14 +865,14 @@ public class CFFParser
         @Override
         public int getFd(int glyph)
         {
+            Map<String, byte[]> charString = owner.getCharStringsDict();
+            Set<String> keys = charString.keySet();
             // ---- search the position of the given glyph
-            for (Mapping mapping: this.owner.getMappings())
+            for (Mapping mapping: owner.getMappings())
             {
-                if (mapping.getSID() == glyph)
+                if (mapping.getSID() == glyph && charString.containsKey(mapping.getName()))
                 {
                     int index = 0;
-                    Map<String, byte[]> charString = this.owner.getCharStringsDict();
-                    Set<String> keys = charString.keySet();
                     for (String str : keys)
                     {
                         if (mapping.getName().equals(str))