Author: tilman
Date: Fri Mar 15 14:25:06 2024
New Revision: 1916342

URL: http://svn.apache.org/viewvc?rev=1916342&view=rev
Log:
PDFBOX-5660: reorder strings for optimization, as suggested by Guillaume Maillrd

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java?rev=1916342&r1=1916341&r2=1916342&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java 
(original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java 
Fri Mar 15 14:25:06 2024
@@ -661,11 +661,35 @@ public class AFMParser
             String nextCommand = metricsTokenizer.nextToken();
             switch (nextCommand)
             {
+            // top 5 most used first
             case CHARMETRICS_C:
                 String charCodeC = metricsTokenizer.nextToken();
                 charMetric.setCharacterCode(parseInt(charCodeC));
                 verifySemicolon(metricsTokenizer);
                 break;
+            case CHARMETRICS_WX:
+                charMetric.setWx(parseFloat(metricsTokenizer.nextToken()));
+                verifySemicolon(metricsTokenizer);
+                break;
+            case CHARMETRICS_N:
+                charMetric.setName(metricsTokenizer.nextToken());
+                verifySemicolon(metricsTokenizer);
+                break;
+            case CHARMETRICS_B:
+                BoundingBox box = new BoundingBox();
+                box.setLowerLeftX(parseFloat(metricsTokenizer.nextToken()));
+                box.setLowerLeftY(parseFloat(metricsTokenizer.nextToken()));
+                box.setUpperRightX(parseFloat(metricsTokenizer.nextToken()));
+                box.setUpperRightY(parseFloat(metricsTokenizer.nextToken()));
+                charMetric.setBoundingBox(box);
+                verifySemicolon(metricsTokenizer);
+                break;
+            case CHARMETRICS_L:
+                Ligature lig = new Ligature(metricsTokenizer.nextToken(),
+                        metricsTokenizer.nextToken());
+                charMetric.addLigature(lig);
+                verifySemicolon(metricsTokenizer);
+                break;
             case CHARMETRICS_CH:
                 // Is the hex string <FF> or FF, the spec is a little
                 // unclear, wait and see if it breaks anything.
@@ -673,10 +697,6 @@ public class AFMParser
                 charMetric.setCharacterCode(parseInt(charCodeCH, BITS_IN_HEX));
                 verifySemicolon(metricsTokenizer);
                 break;
-            case CHARMETRICS_WX:
-                charMetric.setWx(parseFloat(metricsTokenizer.nextToken()));
-                verifySemicolon(metricsTokenizer);
-                break;
             case CHARMETRICS_W0X:
                 charMetric.setW0x(parseFloat(metricsTokenizer.nextToken()));
                 verifySemicolon(metricsTokenizer);
@@ -725,25 +745,6 @@ public class AFMParser
                 charMetric.setVv(vv);
                 verifySemicolon(metricsTokenizer);
                 break;
-            case CHARMETRICS_N:
-                charMetric.setName(metricsTokenizer.nextToken());
-                verifySemicolon(metricsTokenizer);
-                break;
-            case CHARMETRICS_B:
-                BoundingBox box = new BoundingBox();
-                box.setLowerLeftX(parseFloat(metricsTokenizer.nextToken()));
-                box.setLowerLeftY(parseFloat(metricsTokenizer.nextToken()));
-                box.setUpperRightX(parseFloat(metricsTokenizer.nextToken()));
-                box.setUpperRightY(parseFloat(metricsTokenizer.nextToken()));
-                charMetric.setBoundingBox(box);
-                verifySemicolon(metricsTokenizer);
-                break;
-            case CHARMETRICS_L:
-                Ligature lig = new Ligature(metricsTokenizer.nextToken(),
-                        metricsTokenizer.nextToken());
-                charMetric.addLigature(lig);
-                verifySemicolon(metricsTokenizer);
-                break;
             default:
                 throw new IOException("Unknown CharMetrics command '" + 
nextCommand + "'");
             }


Reply via email to