summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2009-06-28 02:11:51 +0200
committerWerner Lemberg <wl@gnu.org>2009-06-28 02:11:51 +0200
commit24370d67f59a81b4fbc802a8a2abe3ae3e8b0c8b (patch)
tree2962879224561a1f97d26b9e2044ee50bf0f19ce
parente7389a4405223c40e552122451c7612ae030c20d (diff)
downloadfreetype2-24370d67f59a81b4fbc802a8a2abe3ae3e8b0c8b.tar.gz
Uff, another thinko.
-rw-r--r--ChangeLog5
-rw-r--r--src/cff/cffgload.c9
-rw-r--r--src/psaux/t1decode.c25
3 files changed, 21 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index df11d1bf4..ffa116ea9 100644
--- 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 <wl@gnu.org>
diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c
index 2a982f40a..70741609f 100644
--- 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;
}
diff --git a/src/psaux/t1decode.c b/src/psaux/t1decode.c
index 39b5c8b96..adb0c6f20 100644
--- 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" ));