ref: 24370d67f59a81b4fbc802a8a2abe3ae3e8b0c8b
parent: e7389a4405223c40e552122451c7612ae030c20d
author: Werner Lemberg <[email protected]>
date: Sat Jun 27 22:11:51 EDT 2009
Uff, another thinko.
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 <[email protected]>
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -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;
}
--- a/src/psaux/t1decode.c
+++ b/src/psaux/t1decode.c
@@ -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" ));