diff options
author | marha <marha@users.sourceforge.net> | 2010-08-06 11:48:36 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-08-06 11:48:36 +0000 |
commit | 20ff8ddf2d9bb41050d10bbc75d61b9161880c7c (patch) | |
tree | 22566fcd9663b2baa565cd0c64eaa662d6ba03ee /freetype/src/psaux | |
parent | c29011f2831315d3da9c4727c1e626d80520b97a (diff) | |
parent | 6849d83857b4e470a44ad8b6aa5cfb283fd64c89 (diff) | |
download | vcxsrv-20ff8ddf2d9bb41050d10bbc75d61b9161880c7c.tar.gz vcxsrv-20ff8ddf2d9bb41050d10bbc75d61b9161880c7c.tar.bz2 vcxsrv-20ff8ddf2d9bb41050d10bbc75d61b9161880c7c.zip |
svn merge ^/branches/released .
Diffstat (limited to 'freetype/src/psaux')
-rw-r--r-- | freetype/src/psaux/afmparse.c | 4 | ||||
-rw-r--r-- | freetype/src/psaux/afmparse.h | 3 | ||||
-rw-r--r-- | freetype/src/psaux/psobjs.c | 12 | ||||
-rw-r--r-- | freetype/src/psaux/t1decode.c | 8 |
4 files changed, 21 insertions, 6 deletions
diff --git a/freetype/src/psaux/afmparse.c b/freetype/src/psaux/afmparse.c index d577da2d8..fbd460d93 100644 --- a/freetype/src/psaux/afmparse.c +++ b/freetype/src/psaux/afmparse.c @@ -4,7 +4,7 @@ /* */ /* AFM parser (body). */ /* */ -/* Copyright 2006, 2007, 2008, 2009 by */ +/* Copyright 2006, 2007, 2008, 2009, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -527,7 +527,7 @@ FT_Byte* base, FT_Byte* limit ) { - AFM_Stream stream; + AFM_Stream stream = NULL; FT_Error error; diff --git a/freetype/src/psaux/afmparse.h b/freetype/src/psaux/afmparse.h index 1314d21ee..55e4f7c47 100644 --- a/freetype/src/psaux/afmparse.h +++ b/freetype/src/psaux/afmparse.h @@ -56,7 +56,8 @@ FT_BEGIN_HEADER typedef struct AFM_ValueRec_ { enum AFM_ValueType_ type; - union { + union + { char* s; FT_Fixed f; FT_Int i; diff --git a/freetype/src/psaux/psobjs.c b/freetype/src/psaux/psobjs.c index 35644aee9..8994e64e3 100644 --- a/freetype/src/psaux/psobjs.c +++ b/freetype/src/psaux/psobjs.c @@ -4,7 +4,8 @@ /* */ /* Auxiliary functions for PostScript fonts (body). */ /* */ -/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */ +/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, */ +/* 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -1588,6 +1589,13 @@ FT_Error error; + /* this might happen in invalid fonts */ + if ( !outline ) + { + FT_ERROR(( "t1_builder_add_contour: no outline to add points to\n" )); + return PSaux_Err_Invalid_File_Format; + } + if ( !builder->load_points ) { outline->n_contours++; @@ -1621,7 +1629,7 @@ if ( builder->parse_state == T1_Parse_Have_Path ) error = PSaux_Err_Ok; - else if ( builder->parse_state == T1_Parse_Have_Moveto ) + else { builder->parse_state = T1_Parse_Have_Path; error = t1_builder_add_contour( builder ); diff --git a/freetype/src/psaux/t1decode.c b/freetype/src/psaux/t1decode.c index 79f73644d..3e5e33fb7 100644 --- a/freetype/src/psaux/t1decode.c +++ b/freetype/src/psaux/t1decode.c @@ -777,6 +777,8 @@ } /* the two `results' are popped by the following setcurrentpoint */ + top[0] = x; + top[1] = y; known_othersubr_result_cnt = 2; break; @@ -1480,8 +1482,12 @@ goto Syntax_Error; } else + ... #endif - decoder->flex_state = 0; + + x = top[0]; + y = top[1]; + decoder->flex_state = 0; break; case op_unknown15: |