Author: jukka
Date: Fri Jan 15 20:41:13 2010
New Revision: 899804

URL: http://svn.apache.org/viewvc?rev=899804&view=rev
Log:
PDFBOX-604: Various text extraction performance improvements

Avoid duplicate has lookups in PDSimpleFont.getFontWidth()

Modified:
    pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java

Modified: 
pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java?rev=899804&r1=899803&r2=899804&view=diff
==============================================================================
--- pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java 
(original)
+++ pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java 
Fri Jan 15 20:41:13 2010
@@ -46,7 +46,9 @@
  */
 public abstract class PDSimpleFont extends PDFont
 {
-    private HashMap mFontSizes = new HashMap(128);
+    private final HashMap<Integer, Float> mFontSizes =
+        new HashMap<Integer, Float>(128);
+
     private float avgFontWidth = 0.0f;
 
     /**
@@ -146,16 +148,9 @@
      */
     public float getFontWidth( byte[] c, int offset, int length ) throws 
IOException
     {
-        float fontWidth = 0;
         int code = getCodeFromArray( c, offset, length );
-
-        Integer codeI = new Integer(code);
-        if (mFontSizes.containsKey(codeI))
-        {
-            Float fontWidthF = (Float) mFontSizes.get(codeI);
-            fontWidth = fontWidthF.floatValue();
-        }
-        else
+        Float fontWidth = mFontSizes.get(code);
+        if (fontWidth == null)
         {
             //hmm should this be in a subclass??
             COSInteger firstChar = (COSInteger)font.getDictionaryObject( 
COSName.FIRST_CHAR );
@@ -179,7 +174,7 @@
             {
                 fontWidth = getFontWidthFromAFMFile( code );
             }
-            mFontSizes.put(codeI, new Float(fontWidth));
+            mFontSizes.put(code, fontWidth);
         }
         return fontWidth;
     }


Reply via email to