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));
     }