Author: lehmi
Date: Sun May 4 12:10:36 2025
New Revision: 1925398
URL: http://svn.apache.org/viewvc?rev=1925398&view=rev
Log:
PDFBOX-5998: avoid unnecessary map lookups based on a proposal by Axel Howind
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/VerticalOriginTable.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/state/PDExtendedGraphicsState.java
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java?rev=1925398&r1=1925397&r2=1925398&view=diff
==============================================================================
---
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java
(original)
+++
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java
Sun May 4 12:10:36 2025
@@ -177,8 +177,8 @@ public class CFFCIDFont extends CFFFont
{
return 1000;
}
- Map<String, Object> privDict =
this.privateDictionaries.get(fdArrayIndex);
- return privDict.containsKey("defaultWidthX") ?
((Number)privDict.get("defaultWidthX")).intValue() : 1000;
+ Object privDictValue =
this.privateDictionaries.get(fdArrayIndex).get("defaultWidthX");
+ return privDictValue instanceof Number ? ((Number)
privDictValue).intValue() : 1000;
}
/**
@@ -193,8 +193,8 @@ public class CFFCIDFont extends CFFFont
{
return 0;
}
- Map<String, Object> privDict =
this.privateDictionaries.get(fdArrayIndex);
- return privDict.containsKey("nominalWidthX") ?
((Number)privDict.get("nominalWidthX")).intValue() : 0;
+ Object privDictValue =
this.privateDictionaries.get(fdArrayIndex).get("nominalWidthX");
+ return privDictValue instanceof Number ? ((Number)
privDictValue).intValue() : 0;
}
/**
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/VerticalOriginTable.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/VerticalOriginTable.java?rev=1925398&r1=1925397&r2=1925398&view=diff
==============================================================================
---
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/VerticalOriginTable.java
(original)
+++
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/VerticalOriginTable.java
Sun May 4 12:10:36 2025
@@ -91,13 +91,7 @@ public class VerticalOriginTable extends
*/
public int getOriginY(int gid)
{
- if (origins.containsKey(gid))
- {
- return origins.get(gid);
- }
- else
- {
- return defaultVertOriginY;
- }
+ Integer originY = origins.get(gid);
+ return originY != null ? originY : defaultVertOriginY;
}
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java?rev=1925398&r1=1925397&r2=1925398&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java
Sun May 4 12:10:36 2025
@@ -611,14 +611,10 @@ public class PDStructureElement extends
public String getStandardStructureType()
{
String type = this.getStructureType();
- Map<String,Object> roleMap = getRoleMap();
- if (roleMap.containsKey(type))
+ Object mappedValue = getRoleMap().get(type);
+ if (mappedValue instanceof String)
{
- Object mappedValue = getRoleMap().get(type);
- if (mappedValue instanceof String)
- {
- type = (String)mappedValue;
- }
+ type = (String) mappedValue;
}
return type;
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java?rev=1925398&r1=1925397&r2=1925398&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
Sun May 4 12:10:36 2025
@@ -69,10 +69,7 @@ public class PDTrueTypeFont extends PDSi
Map<Integer, String> codeToName =
MacOSRomanEncoding.INSTANCE.getCodeToNameMap();
for (Map.Entry<Integer, String> entry : codeToName.entrySet())
{
- if (!INVERTED_MACOS_ROMAN.containsKey(entry.getValue()))
- {
- INVERTED_MACOS_ROMAN.put(entry.getValue(), entry.getKey());
- }
+ INVERTED_MACOS_ROMAN.putIfAbsent(entry.getValue(), entry.getKey());
}
}
@@ -169,7 +166,7 @@ public class PDTrueTypeFont extends PDSi
private CmapSubtable cmapWinSymbol = null;
private CmapSubtable cmapMacRoman = null;
private boolean cmapInitialized = false;
- private Map<Integer, Integer> gidToCode; // for embedding
+ private final Map<Integer, Integer> gidToCode = new HashMap<Integer,
Integer>(); // for embedding
private final TrueTypeFont ttf;
private final boolean isEmbedded;
@@ -444,19 +441,14 @@ public class PDTrueTypeFont extends PDSi
*/
protected Map<Integer, Integer> getGIDToCode() throws IOException
{
- if (gidToCode != null)
+ if (!gidToCode.isEmpty())
{
return gidToCode;
}
-
- gidToCode = new HashMap<Integer, Integer>();
for (int code = 0; code <= 255; code++)
{
int gid = codeToGID(code);
- if (!gidToCode.containsKey(gid))
- {
- gidToCode.put(gid, code);
- }
+ gidToCode.putIfAbsent(gid, code);
}
return gidToCode;
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java?rev=1925398&r1=1925397&r2=1925398&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java
Sun May 4 12:10:36 2025
@@ -156,12 +156,6 @@ public final class GlyphList
String name = parts[0];
String[] unicodeList = parts[1].split(" ");
- if (nameToUnicode.containsKey(name))
- {
- LOG.warn("duplicate value for " + name + " -> " +
parts[1] + " " +
- nameToUnicode.get(name));
- }
-
int[] codePoints = new int[unicodeList.length];
int index = 0;
for (String hex : unicodeList)
@@ -171,8 +165,12 @@ public final class GlyphList
String string = new String(codePoints, 0 ,
codePoints.length);
// forward mapping
- nameToUnicode.put(name, string);
-
+ String oldMapping = nameToUnicode.put(name, string);
+ if (oldMapping != null)
+ {
+ LOG.warn("duplicate value for " + name + " -> " +
parts[1] + " "
+ + nameToUnicode.get(name));
+ }
// reverse mapping
// PDFBOX-3884: take the various standard encodings as
canonical,
// e.g. tilde over ilde
@@ -182,10 +180,14 @@ public final class GlyphList
MacExpertEncoding.INSTANCE.contains(name) ||
SymbolEncoding.INSTANCE.contains(name) ||
ZapfDingbatsEncoding.INSTANCE.contains(name);
- if (!unicodeToName.containsKey(string) || forceOverride)
+ if (forceOverride)
{
unicodeToName.put(string, name);
}
+ else
+ {
+ unicodeToName.putIfAbsent(string, name);
+ }
}
}
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/state/PDExtendedGraphicsState.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/state/PDExtendedGraphicsState.java?rev=1925398&r1=1925397&r2=1925398&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/state/PDExtendedGraphicsState.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/state/PDExtendedGraphicsState.java
Sun May 4 12:10:36 2025
@@ -585,11 +585,8 @@ public class PDExtendedGraphicsState imp
*/
public PDSoftMask getSoftMask()
{
- if (!dict.containsKey(COSName.SMASK))
- {
- return null;
- }
- return PDSoftMask.create(dict.getDictionaryObject(COSName.SMASK));
+ COSBase smask = dict.getDictionaryObject(COSName.SMASK);
+ return smask == null ? null : PDSoftMask.create(smask);
}
/**