[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.
This commit is contained in:
Dave Arnold 2014-02-08 06:23:04 +01:00 committed by Werner Lemberg
parent cc7d35a297
commit 355b359ebb
2 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2014-02-08 Dave Arnold <darnold@adobe.com>
[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 <wl@gnu.org>
Fix problems with perl 5.8.8 as distributed with current MinGW.

View File

@ -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 */