You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2023/03/01 04:11:59 UTC
svn commit: r1907922 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
Author: tilman
Date: Wed Mar 1 04:11:59 2023
New Revision: 1907922
URL: http://svn.apache.org/viewvc?rev=1907922&view=rev
Log:
PDFBOX-4892: optimize, as suggested by valerybokov
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java?rev=1907922&r1=1907921&r2=1907922&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java Wed Mar 1 04:11:59 2023
@@ -114,9 +114,9 @@ public class GlyphSubstitutionTable exte
{
data.seek(offset);
int scriptCount = data.readUnsignedShort();
- ScriptTable[] scriptTables= new ScriptTable[scriptCount];
int[] scriptOffsets = new int[scriptCount];
String[] scriptTags = new String[scriptCount];
+ Map<String, ScriptTable> resultScriptList = new LinkedHashMap<>(scriptCount);
for (int i = 0; i < scriptCount; i++)
{
scriptTags[i] = data.readString(4);
@@ -124,12 +124,8 @@ public class GlyphSubstitutionTable exte
}
for (int i = 0; i < scriptCount; i++)
{
- scriptTables[i] = readScriptTable(data, offset + scriptOffsets[i]);
- }
- Map<String, ScriptTable> resultScriptList = new LinkedHashMap<>(scriptCount);
- for (int i = 0; i < scriptCount; i++)
- {
- ScriptRecord scriptRecord = new ScriptRecord(scriptTags[i], scriptTables[i]);
+ ScriptTable scriptTable = readScriptTable(data, offset + scriptOffsets[i]);
+ ScriptRecord scriptRecord = new ScriptRecord(scriptTags[i], scriptTable);
resultScriptList.put(scriptRecord.getScriptTag(), scriptRecord.getScriptTable());
}
return Collections.unmodifiableMap(resultScriptList);
@@ -163,16 +159,12 @@ public class GlyphSubstitutionTable exte
{
defaultLangSysTable = readLangSysTable(data, offset + defaultLangSys);
}
+ Map<String, LangSysTable> langSysTables = new LinkedHashMap<>(langSysCount);
for (int i = 0; i < langSysCount; i++)
{
LangSysTable langSysTable = readLangSysTable(data, offset + langSysOffsets[i]);
- langSysRecords[i] = new LangSysRecord(langSysTags[i], langSysTable);
- }
- Map<String, LangSysTable> langSysTables = new LinkedHashMap<>(langSysCount);
- for (LangSysRecord langSysRecord : langSysRecords)
- {
- langSysTables.put(langSysRecord.getLangSysTag(),
- langSysRecord.getLangSysTable());
+ LangSysRecord langSysRecord = new LangSysRecord(langSysTags[i], langSysTable);
+ langSysTables.put(langSysRecord.getLangSysTag(), langSysRecord.getLangSysTable());
}
return new ScriptTable(defaultLangSysTable, Collections.unmodifiableMap(langSysTables));
}