shithub: freetype+ttf2subf

Download patch

ref: a8bc49e14167c167370109a9022360c9cdc1b838
parent: 5bb5750f98af1b80a45a457636d995ef119a475c
author: Alexei Podtelezhnikov <[email protected]>
date: Sun Aug 24 18:14:01 EDT 2014

[truetype] Optimize DELTAP and DELTAC.

* src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
calculations outside of the loop.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-08-24  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Optimize DELTAP and DELTAC. 
+
+	* src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
+	calculations outside of the loop.
+
 2014-08-21  Alexei Podtelezhnikov  <[email protected]>
 
 	Fix Savannah bug #43033.
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -7487,9 +7487,9 @@
   static void
   Ins_DELTAP( INS_ARG )
   {
-    FT_ULong   k, nump;
+    FT_ULong   nump, k;
     FT_UShort  A;
-    FT_ULong   C;
+    FT_ULong   C, P;
     FT_Long    B;
 #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
     FT_UShort  B1, B2;
@@ -7523,6 +7523,7 @@
     }
 #endif
 
+    P = (FT_ULong)CURRENT_Ppem();
     nump = (FT_ULong)args[0];   /* some points theoretically may occur more
                                    than once, thus UShort isn't enough */
 
@@ -7567,7 +7568,7 @@
 
         C += CUR.GS.delta_base;
 
-        if ( CURRENT_Ppem() == (FT_Long)C )
+        if ( P == C )
         {
           B = ( (FT_ULong)B & 0xF ) - 8;
           if ( B >= 0 )
@@ -7667,7 +7668,7 @@
   Ins_DELTAC( INS_ARG )
   {
     FT_ULong  nump, k;
-    FT_ULong  A, C;
+    FT_ULong  A, C, P;
     FT_Long   B;
 
 
@@ -7691,6 +7692,7 @@
     }
 #endif
 
+    P = (FT_ULong)CURRENT_Ppem();
     nump = (FT_ULong)args[0];
 
     for ( k = 1; k <= nump; k++ )
@@ -7736,7 +7738,7 @@
 
         C += CUR.GS.delta_base;
 
-        if ( CURRENT_Ppem() == (FT_Long)C )
+        if ( P == C )
         {
           B = ( (FT_ULong)B & 0xF ) - 8;
           if ( B >= 0 )