]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
FOP-2194: optimize lazy font load invocation for hot methods
authorGlenn Adams <gadams@apache.org>
Fri, 18 Jan 2013 21:13:42 +0000 (21:13 +0000)
committerGlenn Adams <gadams@apache.org>
Fri, 18 Jan 2013 21:13:42 +0000 (21:13 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1435344 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fonts/LazyFont.java
status.xml

index fef42f74ce282ae70dad5a938b32a6e094f2e476..e990e405243dc76a3a1b0a104cf5700804f4d8a8 100644 (file)
@@ -153,7 +153,9 @@ public class LazyFont extends Typeface implements FontDescriptor, Substitutable,
      * {@inheritDoc}
      */
     public char mapChar(char c) {
-        load(true);
+        if ( !isMetricsLoaded ) {
+            load(true);
+        }
         return realFont.mapChar(c);
     }
 
@@ -169,7 +171,9 @@ public class LazyFont extends Typeface implements FontDescriptor, Substitutable,
      * {@inheritDoc}
      */
     public boolean hasChar(char c) {
-        load(true);
+        if ( !isMetricsLoaded ) {
+            load(true);
+        }
         return realFont.hasChar(c);
     }
 
@@ -250,7 +254,9 @@ public class LazyFont extends Typeface implements FontDescriptor, Substitutable,
      * {@inheritDoc}
      */
     public int getWidth(int i, int size) {
-        load(true);
+        if ( !isMetricsLoaded ) {
+            load(true);
+        }
         return realFont.getWidth(i, size);
     }
 
@@ -384,7 +390,9 @@ public class LazyFont extends Typeface implements FontDescriptor, Substitutable,
      */
     public CharSequence reorderCombiningMarks
         ( CharSequence cs, int[][] gpa, String script, String language ) {
-        load(true);
+        if ( !isMetricsLoaded ) {
+            load(true);
+        }
         if ( realFontDescriptor instanceof Substitutable ) {
             return ((Substitutable)realFontDescriptor)
                 .reorderCombiningMarks(cs, gpa, script, language);
@@ -397,7 +405,9 @@ public class LazyFont extends Typeface implements FontDescriptor, Substitutable,
      * {@inheritDoc}
      */
     public boolean performsPositioning() {
-        load(true);
+        if ( !isMetricsLoaded ) {
+            load(true);
+        }
         if ( realFontDescriptor instanceof Positionable ) {
             return ((Positionable)realFontDescriptor).performsPositioning();
         } else {
@@ -410,7 +420,9 @@ public class LazyFont extends Typeface implements FontDescriptor, Substitutable,
      */
     public int[][]
         performPositioning ( CharSequence cs, String script, String language, int fontSize ) {
-        load(true);
+        if ( !isMetricsLoaded ) {
+            load(true);
+        }
         if ( realFontDescriptor instanceof Positionable ) {
             return ((Positionable)realFontDescriptor)
                 .performPositioning(cs, script, language, fontSize);
@@ -424,7 +436,9 @@ public class LazyFont extends Typeface implements FontDescriptor, Substitutable,
      */
     public int[][]
         performPositioning ( CharSequence cs, String script, String language ) {
-        load(true);
+        if ( !isMetricsLoaded ) {
+            load(true);
+        }
         if ( realFontDescriptor instanceof Positionable ) {
             return ((Positionable)realFontDescriptor)
                 .performPositioning(cs, script, language);
index 925ba4c1717f1d7eefcdb64e6cbec58f24c5aeb8..97bf7784d728e23f33f44c69b4a87c719f1fc800 100644 (file)
@@ -59,6 +59,9 @@
       documents. Example: the fix of marks layering will be such a case when it's done.
     -->
     <release version="FOP Trunk" date="TBD">
+      <action context="Fonts" dev="GA" type="fix" fixes-bug="FOP-2194">
+       Optimize lazy font load invocation for hot methods.
+      </action>
       <action context="Code" dev="GA" type="fix" fixes-bug="FOP-2192">
        Fix checkstyle and findbugs warnings.
       </action>