From a8bc49e14167c167370109a9022360c9cdc1b838 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Sun, 24 Aug 2014 22:14:01 -0400 Subject: [PATCH] [truetype] Optimize DELTAP and DELTAC. * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem calculations outside of the loop. --- ChangeLog | 7 +++++++ src/truetype/ttinterp.c | 12 +++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c504dfa8..16dbaafb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-08-24 Alexei Podtelezhnikov + + [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 Fix Savannah bug #43033. diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c index 9491533ec..dd75cce11 100644 --- 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 )