| Index: 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 7ec3b4cf5fd3a81164adcb57f2af75f30f3ebefc..1d3c7e662cefdb2286024b91efb478ed90722c4e 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;
 | 
| 
 |