| Index: third_party/freetype/src/pshinter/pshalgo.c
 | 
| diff --git a/third_party/freetype/src/pshinter/pshalgo.c b/third_party/freetype/src/pshinter/pshalgo.c
 | 
| index 644c76d1017955608dae18ca80552e03b3da4298..6e654cb1ef886ae9fce21066f34bb8699518c4c6 100644
 | 
| --- a/third_party/freetype/src/pshinter/pshalgo.c
 | 
| +++ b/third_party/freetype/src/pshinter/pshalgo.c
 | 
| @@ -4,7 +4,7 @@
 | 
|  /*                                                                         */
 | 
|  /*    PostScript hinting algorithm (body).                                 */
 | 
|  /*                                                                         */
 | 
| -/*  Copyright 2001-2010, 2012-2014 by                                      */
 | 
| +/*  Copyright 2001-2015 by                                                 */
 | 
|  /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 | 
|  /*                                                                         */
 | 
|  /*  This file is part of the FreeType project, and may only be used        */
 | 
| @@ -30,16 +30,14 @@
 | 
|  
 | 
|  
 | 
|  #ifdef DEBUG_HINTER
 | 
| -  PSH_Hint_Table  ps_debug_hint_table = 0;
 | 
| -  PSH_HintFunc    ps_debug_hint_func  = 0;
 | 
| -  PSH_Glyph       ps_debug_glyph      = 0;
 | 
| +  PSH_Hint_Table  ps_debug_hint_table = NULL;
 | 
| +  PSH_HintFunc    ps_debug_hint_func  = NULL;
 | 
| +  PSH_Glyph       ps_debug_glyph      = NULL;
 | 
|  #endif
 | 
|  
 | 
|  
 | 
|  #define  COMPUTE_INFLEXS  /* compute inflection points to optimize `S' */
 | 
|                            /* and similar glyphs                        */
 | 
| -#define  STRONGER         /* slightly increase the contrast of smooth  */
 | 
| -                          /* hinting                                   */
 | 
|  
 | 
|  
 | 
|    /*************************************************************************/
 | 
| @@ -67,13 +65,13 @@
 | 
|    {
 | 
|      FT_FREE( table->zones );
 | 
|      table->num_zones = 0;
 | 
| -    table->zone      = 0;
 | 
| +    table->zone      = NULL;
 | 
|  
 | 
|      FT_FREE( table->sort );
 | 
|      FT_FREE( table->hints );
 | 
|      table->num_hints   = 0;
 | 
|      table->max_hints   = 0;
 | 
| -    table->sort_global = 0;
 | 
| +    table->sort_global = NULL;
 | 
|    }
 | 
|  
 | 
|  
 | 
| @@ -121,7 +119,7 @@
 | 
|        PSH_Hint   hint2;
 | 
|  
 | 
|  
 | 
| -      hint->parent = 0;
 | 
| +      hint->parent = NULL;
 | 
|        for ( ; count > 0; count--, sorted++ )
 | 
|        {
 | 
|          hint2 = sorted[0];
 | 
| @@ -194,7 +192,7 @@
 | 
|      table->sort_global = table->sort + count;
 | 
|      table->num_hints   = 0;
 | 
|      table->num_zones   = 0;
 | 
| -    table->zone        = 0;
 | 
| +    table->zone        = NULL;
 | 
|  
 | 
|      /* initialize the `table->hints' array */
 | 
|      {
 | 
| @@ -890,9 +888,6 @@
 | 
|    /*************************************************************************/
 | 
|    /*************************************************************************/
 | 
|  
 | 
| -#define PSH_ZONE_MIN  -3200000L
 | 
| -#define PSH_ZONE_MAX  +3200000L
 | 
| -
 | 
|  #define xxDEBUG_ZONES
 | 
|  
 | 
|  
 | 
| @@ -910,10 +905,6 @@
 | 
|               zone->max );
 | 
|    }
 | 
|  
 | 
| -#else
 | 
| -
 | 
| -#define psh_print_zone( x )  do { } while ( 0 )
 | 
| -
 | 
|  #endif /* DEBUG_ZONES */
 | 
|  
 | 
|  
 | 
| @@ -925,103 +916,9 @@
 | 
|    /*************************************************************************/
 | 
|    /*************************************************************************/
 | 
|  
 | 
| -#if 1
 | 
| -
 | 
|  #define  psh_corner_is_flat      ft_corner_is_flat
 | 
|  #define  psh_corner_orientation  ft_corner_orientation
 | 
|  
 | 
| -#else
 | 
| -
 | 
| -  FT_LOCAL_DEF( FT_Int )
 | 
| -  psh_corner_is_flat( FT_Pos  x_in,
 | 
| -                      FT_Pos  y_in,
 | 
| -                      FT_Pos  x_out,
 | 
| -                      FT_Pos  y_out )
 | 
| -  {
 | 
| -    FT_Pos  ax = x_in;
 | 
| -    FT_Pos  ay = y_in;
 | 
| -
 | 
| -    FT_Pos  d_in, d_out, d_corner;
 | 
| -
 | 
| -
 | 
| -    if ( ax < 0 )
 | 
| -      ax = -ax;
 | 
| -    if ( ay < 0 )
 | 
| -      ay = -ay;
 | 
| -    d_in = ax + ay;
 | 
| -
 | 
| -    ax = x_out;
 | 
| -    if ( ax < 0 )
 | 
| -      ax = -ax;
 | 
| -    ay = y_out;
 | 
| -    if ( ay < 0 )
 | 
| -      ay = -ay;
 | 
| -    d_out = ax + ay;
 | 
| -
 | 
| -    ax = x_out + x_in;
 | 
| -    if ( ax < 0 )
 | 
| -      ax = -ax;
 | 
| -    ay = y_out + y_in;
 | 
| -    if ( ay < 0 )
 | 
| -      ay = -ay;
 | 
| -    d_corner = ax + ay;
 | 
| -
 | 
| -    return ( d_in + d_out - d_corner ) < ( d_corner >> 4 );
 | 
| -  }
 | 
| -
 | 
| -  static FT_Int
 | 
| -  psh_corner_orientation( FT_Pos  in_x,
 | 
| -                          FT_Pos  in_y,
 | 
| -                          FT_Pos  out_x,
 | 
| -                          FT_Pos  out_y )
 | 
| -  {
 | 
| -    FT_Int  result;
 | 
| -
 | 
| -
 | 
| -    /* deal with the trivial cases quickly */
 | 
| -    if ( in_y == 0 )
 | 
| -    {
 | 
| -      if ( in_x >= 0 )
 | 
| -        result = out_y;
 | 
| -      else
 | 
| -        result = -out_y;
 | 
| -    }
 | 
| -    else if ( in_x == 0 )
 | 
| -    {
 | 
| -      if ( in_y >= 0 )
 | 
| -        result = -out_x;
 | 
| -      else
 | 
| -        result = out_x;
 | 
| -    }
 | 
| -    else if ( out_y == 0 )
 | 
| -    {
 | 
| -      if ( out_x >= 0 )
 | 
| -        result = in_y;
 | 
| -      else
 | 
| -        result = -in_y;
 | 
| -    }
 | 
| -    else if ( out_x == 0 )
 | 
| -    {
 | 
| -      if ( out_y >= 0 )
 | 
| -        result = -in_x;
 | 
| -      else
 | 
| -        result =  in_x;
 | 
| -    }
 | 
| -    else /* general case */
 | 
| -    {
 | 
| -      long long  delta = (long long)in_x * out_y - (long long)in_y * out_x;
 | 
| -
 | 
| -      if ( delta == 0 )
 | 
| -        result = 0;
 | 
| -      else
 | 
| -        result = 1 - 2 * ( delta < 0 );
 | 
| -    }
 | 
| -
 | 
| -    return result;
 | 
| -  }
 | 
| -
 | 
| -#endif /* !1 */
 | 
| -
 | 
|  
 | 
|  #ifdef COMPUTE_INFLEXS
 | 
|  
 | 
| @@ -1149,7 +1046,7 @@
 | 
|      glyph->num_points   = 0;
 | 
|      glyph->num_contours = 0;
 | 
|  
 | 
| -    glyph->memory = 0;
 | 
| +    glyph->memory = NULL;
 | 
|    }
 | 
|  
 | 
|  
 | 
| @@ -1274,8 +1171,8 @@
 | 
|           FT_NEW_ARRAY( glyph->contours, outline->n_contours ) )
 | 
|        goto Exit;
 | 
|  
 | 
| -    glyph->num_points   = outline->n_points;
 | 
| -    glyph->num_contours = outline->n_contours;
 | 
| +    glyph->num_points   = (FT_UInt)outline->n_points;
 | 
| +    glyph->num_contours = (FT_UInt)outline->n_contours;
 | 
|  
 | 
|      {
 | 
|        FT_UInt      first = 0, next, n;
 | 
| @@ -1285,15 +1182,15 @@
 | 
|  
 | 
|        for ( n = 0; n < glyph->num_contours; n++ )
 | 
|        {
 | 
| -        FT_Int     count;
 | 
| +        FT_UInt    count;
 | 
|          PSH_Point  point;
 | 
|  
 | 
|  
 | 
| -        next  = outline->contours[n] + 1;
 | 
| +        next  = (FT_UInt)outline->contours[n] + 1;
 | 
|          count = next - first;
 | 
|  
 | 
|          contour->start = points + first;
 | 
| -        contour->count = (FT_UInt)count;
 | 
| +        contour->count = count;
 | 
|  
 | 
|          if ( count > 0 )
 | 
|          {
 | 
| @@ -1696,16 +1593,12 @@
 | 
|        mask++;
 | 
|        for ( ; num_masks > 1; num_masks--, mask++ )
 | 
|        {
 | 
| -        FT_UInt  next;
 | 
| -        FT_Int   count;
 | 
| +        FT_UInt  next = FT_MIN( mask->end_point, glyph->num_points );
 | 
|  
 | 
|  
 | 
| -        next  = mask->end_point > glyph->num_points
 | 
| -                  ? glyph->num_points
 | 
| -                  : mask->end_point;
 | 
| -        count = next - first;
 | 
| -        if ( count > 0 )
 | 
| +        if ( next > first )
 | 
|          {
 | 
| +          FT_UInt    count = next - first;
 | 
|            PSH_Point  point = glyph->points + first;
 | 
|  
 | 
|  
 | 
| @@ -2048,7 +1941,7 @@
 | 
|        /* count the number of strong points in this contour */
 | 
|        next      = start + contour->count;
 | 
|        fit_count = 0;
 | 
| -      first     = 0;
 | 
| +      first     = NULL;
 | 
|  
 | 
|        for ( point = start; point < next; point++ )
 | 
|          if ( psh_point_is_fitted( point ) )
 | 
| 
 |