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 2021/03/31 06:26:10 UTC
svn commit: r1888242 -
/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java
Author: lehmi
Date: Wed Mar 31 06:26:09 2021
New Revision: 1888242
URL: http://svn.apache.org/viewvc?rev=1888242&view=rev
Log:
PDFBOX-5143: cache some heavily used values, delete TODO
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java
Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java?rev=1888242&r1=1888241&r2=1888242&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java Wed Mar 31 06:26:09 2021
@@ -41,6 +41,10 @@ public class CFFType1Font extends CFFFon
private final PrivateType1CharStringReader reader = new PrivateType1CharStringReader();
+ private int defaultWidthX = Integer.MIN_VALUE;
+ private int nominalWidthX = Integer.MIN_VALUE;
+ private byte[][] localSubrIndex;
+
/**
* Private implementation of Type1CharStringReader, because only CFFType1Font can
* expose this publicly, as CIDFonts only support this for legacy 'seac' commands.
@@ -162,7 +166,6 @@ public class CFFType1Font extends CFFFon
* @param name the given key
* @param value the given value
*/
- // todo: can't we just accept a Map?
void addToPrivateDict(String name, Object value)
{
if (value != null)
@@ -194,7 +197,11 @@ public class CFFType1Font extends CFFFon
private byte[][] getLocalSubrIndex()
{
- return (byte[][])privateDict.get("Subrs");
+ if (localSubrIndex == null)
+ {
+ localSubrIndex = (byte[][]) privateDict.get("Subrs");
+ }
+ return localSubrIndex;
}
// helper for looking up keys/values
@@ -210,21 +217,21 @@ public class CFFType1Font extends CFFFon
private int getDefaultWidthX()
{
- Number num = (Number)getProperty("defaultWidthX");
- if (num == null)
+ if (defaultWidthX == Integer.MIN_VALUE)
{
- return 1000;
+ Number num = (Number) getProperty("defaultWidthX");
+ defaultWidthX = num != null ? num.intValue() : 1000;
}
- return num.intValue();
+ return defaultWidthX;
}
private int getNominalWidthX()
{
- Number num = (Number)getProperty("nominalWidthX");
- if (num == null)
+ if (nominalWidthX == Integer.MIN_VALUE)
{
- return 0;
+ Number num = (Number) getProperty("nominalWidthX");
+ nominalWidthX = num != null ? num.intValue() : 0;
}
- return num.intValue();
+ return nominalWidthX;
}
}