summaryrefslogtreecommitdiff
path: root/src/cff/cffgload.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cff/cffgload.c')
-rw-r--r--src/cff/cffgload.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c
index 92ca08bd8..12c8097d1 100644
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -169,10 +169,10 @@
{
error = decoder_funcs->prepare( &decoder, size, glyph_index );
if ( !error )
- error = decoder_funcs->parse_charstrings( &decoder,
- charstring,
- charstring_len,
- 0 );
+ error = decoder_funcs->parse_charstrings_old( &decoder,
+ charstring,
+ charstring_len,
+ 0 );
cff_free_glyph_data( face, &charstring, &charstring_len );
}
@@ -198,6 +198,7 @@
{
FT_Error error;
CFF_Decoder decoder;
+ PS_Decoder psdecoder;
TT_Face face = (TT_Face)glyph->root.face;
FT_Bool hinting, scaled, force_scaling;
CFF_Font cff = (CFF_Font)face->extra.data;
@@ -427,14 +428,16 @@
#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
/* choose which CFF renderer to use */
if ( driver->hinting_engine == FT_CFF_HINTING_FREETYPE )
- error = decoder_funcs->parse_charstrings( &decoder,
- charstring,
- charstring_len,
- 0 );
+ error = decoder_funcs->parse_charstrings_old( &decoder,
+ charstring,
+ charstring_len,
+ 0 );
else
#endif
{
- error = decoder_funcs->parse_charstrings( &decoder,
+ psaux->ps_decoder_init( &decoder, FALSE, &psdecoder );
+
+ error = decoder_funcs->parse_charstrings( &psdecoder,
charstring,
charstring_len );
@@ -449,7 +452,7 @@
force_scaling = TRUE;
glyph->hint = hinting;
- error = decoder_funcs->parse_charstrings( &decoder,
+ error = decoder_funcs->parse_charstrings( &psdecoder,
charstring,
charstring_len );
}