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 2016/05/26 12:46:35 UTC

svn commit: r1745598 - in /pdfbox/branches/2.0: ./ fontbox/src/main/java/org/apache/fontbox/ttf/GlyfCompositeDescript.java

Author: lehmi
Date: Thu May 26 12:46:34 2016
New Revision: 1745598

URL: http://svn.apache.org/viewvc?rev=1745598&view=rev
Log:
PDFBOX-3089: cache pointCount to avoid recalculations

Modified:
    pdfbox/branches/2.0/   (props changed)
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyfCompositeDescript.java

Propchange: pdfbox/branches/2.0/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 26 12:46:34 2016
@@ -1,3 +1,3 @@
 /pdfbox/branches/no-awt:1618517-1621410
 /pdfbox/no-awt:1618514-1618516
-/pdfbox/trunk:1736223,1736227,1736615,1737043,1737130,1737599-1737600,1738755,1740160,1742437,1742442
+/pdfbox/trunk:1736223,1736227,1736615,1737043,1737130,1737599-1737600,1738755,1740160,1742437,1742442,1745595

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyfCompositeDescript.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyfCompositeDescript.java?rev=1745598&r1=1745597&r2=1745598&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyfCompositeDescript.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyfCompositeDescript.java Thu May 26 12:46:34 2016
@@ -44,7 +44,7 @@ public class GlyfCompositeDescript exten
     private GlyphTable glyphTable = null;
     private boolean beingResolved = false;
     private boolean resolved = false;
-
+    private int pointCount = -1;
     /**
      * Constructor.
      * 
@@ -203,14 +203,21 @@ public class GlyfCompositeDescript exten
         {
             LOG.error("getPointCount called on unresolved GlyfCompositeDescript");
         }
-        GlyfCompositeComp c = components.get(components.size() - 1);
-        GlyphDescription gd = getGlypDescription(c.getGlyphIndex());
-        if (gd == null)
+        if (pointCount < 0)
         {
-            LOG.error("getGlypDescription(" + c.getGlyphIndex() + ") is null, returning 0");
-            return 0;
-        }
-        return c.getFirstIndex() + gd.getPointCount();
+            GlyfCompositeComp c = components.get(components.size() - 1);
+            GlyphDescription gd = getGlypDescription(c.getGlyphIndex());
+            if (gd == null)
+            {
+                LOG.error("getGlypDescription(" + c.getGlyphIndex() + ") is null, returning 0");
+                pointCount = 0;
+            }
+            else
+            {
+                pointCount = c.getFirstIndex() + gd.getPointCount();
+            }
+        }   
+        return pointCount;
     }
 
     /**