Uff, another thinko.

This commit is contained in:
Werner Lemberg 2009-06-28 02:11:51 +02:00
parent e7389a4405
commit 24370d67f5
3 changed files with 21 additions and 18 deletions

View File

@ -5,9 +5,8 @@
* include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
(CFF_Decoder): Add `seac' boolean variable.
* src/cff/cffgload.c (cff_operator_seac,
cff_decoder_parse_charstrings), src/psaux/t1decode.c
(t1operator_seac, t1_decoder_parse_charstrings): Use it.
* src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
(t1operator_seac): Use it.
2009-06-28 Werner Lemberg <wl@gnu.org>

View File

@ -783,8 +783,11 @@
&charstring, &charstring_len );
if ( !error )
{
/* the seac operator must not be nested */
decoder->seac = TRUE;
error = cff_decoder_parse_charstrings( decoder, charstring,
charstring_len );
decoder->seac = FALSE;
if ( error )
goto Exit;
@ -809,8 +812,11 @@
&charstring, &charstring_len );
if ( !error )
{
/* the seac operator must not be nested */
decoder->seac = TRUE;
error = cff_decoder_parse_charstrings( decoder, charstring,
charstring_len );
decoder->seac = FALSE;
if ( error )
goto Exit;
@ -1889,14 +1895,11 @@
FT_Pos glyph_width = decoder->glyph_width;
/* the seac operator must not be nested */
decoder->seac = TRUE;
error = cff_operator_seac( decoder,
args[-4],
args[-3],
(FT_Int)( args[-2] >> 16 ),
(FT_Int)( args[-1] >> 16 ) );
decoder->seac = FALSE;
decoder->glyph_width = glyph_width;
}

View File

@ -282,7 +282,10 @@
FT_GlyphLoader_Prepare( decoder->builder.loader ); /* prepare loader */
/* the seac operator must not be nested */
decoder->seac = TRUE;
error = t1_decoder_parse_glyph( decoder, bchar_index );
decoder->seac = FALSE;
if ( error )
goto Exit;
@ -300,7 +303,11 @@
/* Now load `achar' on top of */
/* the base outline */
/* the seac operator must not be nested */
decoder->seac = TRUE;
error = t1_decoder_parse_glyph( decoder, achar_index );
decoder->seac = FALSE;
if ( error )
goto Exit;
@ -1125,18 +1132,12 @@
break;
case op_seac:
/* the seac operator must not be nested */
decoder->seac = TRUE;
error = t1operator_seac( decoder,
top[0],
top[1],
top[2],
(FT_Int)( top[3] >> 16 ),
(FT_Int)( top[4] >> 16 ) );
decoder->seac = FALSE;
/* return immediately after the processing */
return error;
return t1operator_seac( decoder,
top[0],
top[1],
top[2],
(FT_Int)( top[3] >> 16 ),
(FT_Int)( top[4] >> 16 ) );
case op_sbw:
FT_TRACE4(( " sbw" ));