From 355b359ebb491e81e78db8a5c8d42535c4b5829b Mon Sep 17 00:00:00 2001 From: Dave Arnold Date: Sat, 8 Feb 2014 06:23:04 +0100 Subject: [PATCH] [cff] Fix minor performance bug. * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone calculations are now cached and not recomputed on each glyph. --- ChangeLog | 7 +++++++ src/cff/cf2font.c | 15 ++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f38a548ee..b4ae71801 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-02-08 Dave Arnold + + [cff] Fix minor performance bug. + + * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone + calculations are now cached and not recomputed on each glyph. + 2014-02-05 Werner Lemberg Fix problems with perl 5.8.8 as distributed with current MinGW. diff --git a/src/cff/cf2font.c b/src/cff/cf2font.c index 718d1e27e..9eedf1be5 100644 --- a/src/cff/cf2font.c +++ b/src/cff/cf2font.c @@ -4,7 +4,7 @@ /* */ /* Adobe's code for font instances (body). */ /* */ -/* Copyright 2007-2013 Adobe Systems Incorporated. */ +/* Copyright 2007-2014 Adobe Systems Incorporated. */ /* */ /* This software, and all works of authorship, whether in source or */ /* object code form as indicated by the copyright notice(s) included */ @@ -233,13 +233,14 @@ /* pointer to parsed font object */ CFF_Decoder* decoder = font->decoder; - FT_Bool needExtraSetup; + FT_Bool needExtraSetup = FALSE; /* character space units */ CF2_Fixed boldenX = font->syntheticEmboldeningAmountX; CF2_Fixed boldenY = font->syntheticEmboldeningAmountY; - CF2_Fixed ppem; + CFF_SubFont subFont; + CF2_Fixed ppem; /* clear previous error */ @@ -247,8 +248,12 @@ /* if a CID fontDict has changed, we need to recompute some cached */ /* data */ - needExtraSetup = - (FT_Bool)( font->lastSubfont != cf2_getSubfont( decoder ) ); + subFont = cf2_getSubfont( decoder ); + if ( font->lastSubfont != subFont ) + { + font->lastSubfont = subFont; + needExtraSetup = TRUE; + } /* if ppem has changed, we need to recompute some cached data */ /* note: because of CID font matrix concatenation, ppem and transform */