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/18 17:31:40 UTC

svn commit: r1720821 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering: CIDType0Glyph2D.java PageDrawer.java TTFGlyph2D.java Type1Glyph2D.java

Author: lehmi
Date: Fri Dec 18 16:31:40 2015
New Revision: 1720821

URL: http://svn.apache.org/viewvc?rev=1720821&view=rev
Log:
PDFBOX-2852: reduce containsKey/get combination to get

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/CIDType0Glyph2D.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TTFGlyph2D.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/Type1Glyph2D.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/CIDType0Glyph2D.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/CIDType0Glyph2D.java?rev=1720821&r1=1720820&r2=1720821&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/CIDType0Glyph2D.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/CIDType0Glyph2D.java Fri Dec 18 16:31:40 2015
@@ -51,30 +51,30 @@ final class CIDType0Glyph2D implements G
     @Override
     public GeneralPath getPathForCharacterCode(int code)
     {
-        if (cache.containsKey(code))
+        GeneralPath path = cache.get(code);
+        if (path == null)
         {
-            return cache.get(code);
-        }
-
-        try
-        {
-            if (!font.hasGlyph(code))
+            try
             {
-                int cid = font.getParent().codeToCID(code);
-                String cidHex = String.format("%04x", cid);
-                LOG.warn("No glyph for " + code + " (CID " + cidHex + ") in font " + fontName);
+                if (!font.hasGlyph(code))
+                {
+                    int cid = font.getParent().codeToCID(code);
+                    String cidHex = String.format("%04x", cid);
+                    LOG.warn("No glyph for " + code + " (CID " + cidHex + ") in font " + fontName);
+                }
+    
+                path = font.getPath(code);
+                cache.put(code, path);
+                return path;
+            }
+            catch (IOException e)
+            {
+                // todo: escalate this error?
+                LOG.error("Glyph rendering failed", e);
+                path = new GeneralPath();
             }
-
-            GeneralPath path = font.getPath(code);
-            cache.put(code, path);
-            return path;
-        }
-        catch (IOException e)
-        {
-            // todo: escalate this error?
-            LOG.error("Glyph rendering failed", e);
-            return new GeneralPath();
         }
+        return path;
     }
 
     @Override

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1720821&r1=1720820&r2=1720821&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Fri Dec 18 16:31:40 2015
@@ -399,13 +399,13 @@ public class PageDrawer extends PDFGraph
      */
     private Glyph2D createGlyph2D(PDFont font) throws IOException
     {
+        Glyph2D glyph2D = fontGlyph2D.get(font);
         // Is there already a Glyph2D for the given font?
-        if (fontGlyph2D.containsKey(font))
+        if (glyph2D != null)
         {
-            return fontGlyph2D.get(font);
+            return glyph2D;
         }
 
-        Glyph2D glyph2D = null;
         if (font instanceof PDTrueTypeFont)
         {
             PDTrueTypeFont ttfFont = (PDTrueTypeFont)font;

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TTFGlyph2D.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TTFGlyph2D.java?rev=1720821&r1=1720820&r2=1720821&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TTFGlyph2D.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TTFGlyph2D.java Fri Dec 18 16:31:40 2015
@@ -116,12 +116,8 @@ final class TTFGlyph2D implements Glyph2
      */
     public GeneralPath getPathForGID(int gid, int code) throws IOException
     {
-        GeneralPath glyphPath;
-        if (glyphs.containsKey(gid))
-        {
-            glyphPath = glyphs.get(gid);
-        }
-        else
+        GeneralPath glyphPath = glyphs.get(gid);
+        if (glyphPath == null)
         {
             if (gid == 0 || gid >= ttf.getMaximumProfile().getNumGlyphs())
             {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/Type1Glyph2D.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/Type1Glyph2D.java?rev=1720821&r1=1720820&r2=1720821&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/Type1Glyph2D.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/Type1Glyph2D.java Fri Dec 18 16:31:40 2015
@@ -48,36 +48,36 @@ final class Type1Glyph2D implements Glyp
     public GeneralPath getPathForCharacterCode(int code)
     {
         // cache
-        if (cache.containsKey(code))
+        GeneralPath path = cache.get(code);
+        if (path == null)
         {
-            return cache.get(code);
-        }
-
-        // fetch
-        try
-        {
-            String name = font.getEncoding().getName(code);
-            if (!font.hasGlyph(name))
+            // fetch
+            try
             {
-                LOG.warn("No glyph for " + code + " (" + name + ") in font " + font.getName());
+                String name = font.getEncoding().getName(code);
+                if (!font.hasGlyph(name))
+                {
+                    LOG.warn("No glyph for " + code + " (" + name + ") in font " + font.getName());
+                }
+    
+                // todo: can this happen? should it be encapsulated?
+                path = font.getPath(name);
+                if (path == null)
+                {
+                    path = font.getPath(".notdef");
+                }
+    
+                cache.put(code, path);
+                return path;
             }
-
-            // todo: can this happen? should it be encapsulated?
-            GeneralPath path = font.getPath(name);
-            if (path == null)
+            catch (IOException e)
             {
-                path = font.getPath(".notdef");
+                // todo: escalate this error?
+                LOG.error("Glyph rendering failed", e); 
+                path = new GeneralPath();
             }
-
-            cache.put(code, path);
-            return path;
-        }
-        catch (IOException e)
-        {
-            // todo: escalate this error?
-            LOG.error("Glyph rendering failed", e); 
-            return new GeneralPath();
         }
+        return path;
     }
 
     @Override