From cec3f6878e37fcd1c6c15e0e2ab011931d55549e Mon Sep 17 00:00:00 2001 From: Oliver Chang Date: Thu, 5 Nov 2015 16:00:40 -0800 Subject: Merge to XFA: Update bundled freetype to 2.6.1 Also adds a README.pdfium and 0000-include.patch that details the local modifications made. Also rolls testing/corpus to 45f88c6914fcac26ad930bb0ebbfa468c21db0a5 which includes regenerated corpus expectations. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1413673003 . (cherry picked from commit 87ee069d05ca06f60d6cfacd9e426739d8f2053d) Review URL: https://codereview.chromium.org/1416993005 . --- third_party/freetype/src/psaux/psobjs.c | 45 ++++++++++++++++----------------- 1 file changed, 22 insertions(+), 23 deletions(-) (limited to 'third_party/freetype/src/psaux/psobjs.c') diff --git a/third_party/freetype/src/psaux/psobjs.c b/third_party/freetype/src/psaux/psobjs.c index 7ec3b4cf5f..1d3c7e662c 100644 --- a/third_party/freetype/src/psaux/psobjs.c +++ b/third_party/freetype/src/psaux/psobjs.c @@ -4,7 +4,7 @@ /* */ /* Auxiliary functions for PostScript fonts (body). */ /* */ -/* Copyright 1996-2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -81,7 +81,7 @@ table->max_elems = count; table->init = 0xDEADBEEFUL; table->num_elems = 0; - table->block = 0; + table->block = NULL; table->capacity = 0; table->cursor = 0; @@ -165,10 +165,10 @@ /* reallocation fails. */ /* */ FT_LOCAL_DEF( FT_Error ) - ps_table_add( PS_Table table, - FT_Int idx, - void* object, - FT_PtrDist length ) + ps_table_add( PS_Table table, + FT_Int idx, + void* object, + FT_UInt length ) { if ( idx < 0 || idx >= table->max_elems ) { @@ -176,12 +176,6 @@ return FT_THROW( Invalid_Argument ); } - if ( length < 0 ) - { - FT_ERROR(( "ps_table_add: invalid length\n" )); - return FT_THROW( Invalid_Argument ); - } - /* grow the base block if needed */ if ( table->cursor + length > table->capacity ) { @@ -600,6 +594,9 @@ error = FT_THROW( Invalid_File_Format ); } + if ( cur > limit ) + cur = limit; + parser->error = error; parser->cursor = cur; } @@ -625,8 +622,8 @@ token->type = T1_TOKEN_TYPE_NONE; - token->start = 0; - token->limit = 0; + token->start = NULL; + token->limit = NULL; /* first of all, skip leading whitespace */ ps_parser_skip_spaces( parser ); @@ -707,7 +704,7 @@ if ( !token->limit ) { - token->start = 0; + token->start = NULL; token->type = T1_TOKEN_TYPE_NONE; } @@ -932,7 +929,7 @@ FT_Memory memory ) { FT_Byte* cur = *cursor; - FT_PtrDist len = 0; + FT_UInt len = 0; FT_Int count; FT_String* result; FT_Error error; @@ -972,7 +969,7 @@ } } - len = cur - *cursor; + len = (FT_UInt)( cur - *cursor ); if ( cur >= limit || FT_ALLOC( result, len + 1 ) ) return 0; @@ -1230,20 +1227,22 @@ for ( i = 0; i < 4; i++ ) { - result = ps_tofixedarray( &cur, limit, max_objects, + result = ps_tofixedarray( &cur, limit, (FT_Int)max_objects, temp + i * max_objects, 0 ); if ( result < 0 || (FT_UInt)result < max_objects ) { FT_ERROR(( "ps_parser_load_field:" - " expected %d integers in the %s subarray\n" + " expected %d integer%s in the %s subarray\n" " " " of /FontBBox in the /Blend dictionary\n", - max_objects, + max_objects, max_objects > 1 ? "s" : "", i == 0 ? "first" : ( i == 1 ? "second" : ( i == 2 ? "third" : "fourth" ) ) )); error = FT_THROW( Invalid_File_Format ); + + FT_FREE( temp ); goto Exit; } @@ -1321,7 +1320,7 @@ goto Exit; } if ( (FT_UInt)num_elements > field->array_max ) - num_elements = field->array_max; + num_elements = (FT_Int)field->array_max; old_cursor = parser->cursor; old_limit = parser->limit; @@ -1379,7 +1378,7 @@ ps_parser_to_bytes( PS_Parser parser, FT_Byte* bytes, FT_Offset max_bytes, - FT_Long* pnum_bytes, + FT_ULong* pnum_bytes, FT_Bool delimiters ) { FT_Error error = FT_Err_Ok; @@ -1553,7 +1552,7 @@ FT_GlyphLoader_Rewind( loader ); builder->hints_globals = size->internal; - builder->hints_funcs = 0; + builder->hints_funcs = NULL; if ( hinting ) builder->hints_funcs = glyph->internal->glyph_hints; -- cgit v1.2.3