| Index: third_party/freetype/src/base/ftbitmap.c
|
| diff --git a/third_party/freetype/src/base/ftbitmap.c b/third_party/freetype/src/base/ftbitmap.c
|
| index 5dd33a26f1dfd2140522dceef8314c9269d20513..a54572aaa2aefde360d5ef6c938992a52a27e130 100644
|
| --- a/third_party/freetype/src/base/ftbitmap.c
|
| +++ b/third_party/freetype/src/base/ftbitmap.c
|
| @@ -4,7 +4,7 @@
|
| /* */
|
| /* FreeType utility functions for bitmaps (body). */
|
| /* */
|
| -/* Copyright 2004-2009, 2011, 2013, 2014 by */
|
| +/* Copyright 2004-2015 by */
|
| /* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
| /* */
|
| /* This file is part of the FreeType project, and may only be used, */
|
| @@ -31,6 +31,16 @@
|
| /* documentation is in ftbitmap.h */
|
|
|
| FT_EXPORT_DEF( void )
|
| + FT_Bitmap_Init( FT_Bitmap *abitmap )
|
| + {
|
| + if ( abitmap )
|
| + *abitmap = null_bitmap;
|
| + }
|
| +
|
| +
|
| + /* deprecated function name; retained for ABI compatibility */
|
| +
|
| + FT_EXPORT_DEF( void )
|
| FT_Bitmap_New( FT_Bitmap *abitmap )
|
| {
|
| if ( abitmap )
|
| @@ -117,7 +127,7 @@
|
| FT_Byte* t = target->buffer;
|
|
|
|
|
| - t += pitch * ( target->rows - 1 );
|
| + t += (FT_ULong)pitch * ( target->rows - 1 );
|
|
|
| for ( i = target->rows; i > 0; i-- )
|
| {
|
| @@ -160,21 +170,21 @@
|
| {
|
| case FT_PIXEL_MODE_MONO:
|
| bpp = 1;
|
| - new_pitch = ( width + xpixels + 7 ) >> 3;
|
| + new_pitch = (int)( ( width + xpixels + 7 ) >> 3 );
|
| break;
|
| case FT_PIXEL_MODE_GRAY2:
|
| bpp = 2;
|
| - new_pitch = ( width + xpixels + 3 ) >> 2;
|
| + new_pitch = (int)( ( width + xpixels + 3 ) >> 2 );
|
| break;
|
| case FT_PIXEL_MODE_GRAY4:
|
| bpp = 4;
|
| - new_pitch = ( width + xpixels + 1 ) >> 1;
|
| + new_pitch = (int)( ( width + xpixels + 1 ) >> 1 );
|
| break;
|
| case FT_PIXEL_MODE_GRAY:
|
| case FT_PIXEL_MODE_LCD:
|
| case FT_PIXEL_MODE_LCD_V:
|
| bpp = 8;
|
| - new_pitch = ( width + xpixels );
|
| + new_pitch = (int)( width + xpixels );
|
| break;
|
| default:
|
| return FT_THROW( Invalid_Glyph_Format );
|
| @@ -184,7 +194,7 @@
|
| if ( ypixels == 0 && new_pitch <= pitch )
|
| {
|
| /* zero the padding */
|
| - FT_UInt bit_width = pitch * 8;
|
| + FT_UInt bit_width = (FT_UInt)pitch * 8;
|
| FT_UInt bit_last = ( width + xpixels ) * bpp;
|
|
|
|
|
| @@ -227,8 +237,9 @@
|
|
|
|
|
| for ( i = 0; i < bitmap->rows; i++ )
|
| - FT_MEM_COPY( buffer + new_pitch * ( ypixels + i ),
|
| - bitmap->buffer + pitch * i, len );
|
| + FT_MEM_COPY( buffer + (FT_UInt)new_pitch * ( ypixels + i ),
|
| + bitmap->buffer + (FT_UInt)pitch * i,
|
| + len );
|
| }
|
| else
|
| {
|
| @@ -236,8 +247,9 @@
|
|
|
|
|
| for ( i = 0; i < bitmap->rows; i++ )
|
| - FT_MEM_COPY( buffer + new_pitch * i,
|
| - bitmap->buffer + pitch * i, len );
|
| + FT_MEM_COPY( buffer + (FT_UInt)new_pitch * i,
|
| + bitmap->buffer + (FT_UInt)pitch * i,
|
| + len );
|
| }
|
|
|
| FT_FREE( bitmap->buffer );
|
| @@ -295,7 +307,7 @@
|
|
|
|
|
| /* convert to 8bpp */
|
| - FT_Bitmap_New( &tmp );
|
| + FT_Bitmap_Init( &tmp );
|
| error = FT_Bitmap_Convert( library, bitmap, &tmp, 1 );
|
| if ( error )
|
| return error;
|
| @@ -323,7 +335,8 @@
|
| return FT_Err_Ok;
|
| }
|
|
|
| - error = ft_bitmap_assure_buffer( library->memory, bitmap, xstr, ystr );
|
| + error = ft_bitmap_assure_buffer( library->memory, bitmap,
|
| + (FT_UInt)xstr, (FT_UInt)ystr );
|
| if ( error )
|
| return error;
|
|
|
| @@ -334,7 +347,7 @@
|
| else
|
| {
|
| pitch = -pitch;
|
| - p = bitmap->buffer + pitch * ( bitmap->rows - 1 );
|
| + p = bitmap->buffer + (FT_UInt)pitch * ( bitmap->rows - 1 );
|
| }
|
|
|
| /* for each row */
|
| @@ -363,7 +376,7 @@
|
| p[x] |= p[x - 1] << ( 8 - i );
|
|
|
| #if 0
|
| - if ( p[x] == 0xff )
|
| + if ( p[x] == 0xFF )
|
| break;
|
| #endif
|
| }
|
| @@ -407,8 +420,8 @@
|
| p += bitmap->pitch;
|
| }
|
|
|
| - bitmap->width += xstr;
|
| - bitmap->rows += ystr;
|
| + bitmap->width += (FT_UInt)xstr;
|
| + bitmap->rows += (FT_UInt)ystr;
|
|
|
| return FT_Err_Ok;
|
| }
|
| @@ -501,7 +514,7 @@
|
| if ( old_target_pitch < 0 )
|
| old_target_pitch = -old_target_pitch;
|
|
|
| - old_size = target->rows * old_target_pitch;
|
| + old_size = target->rows * (FT_UInt)old_target_pitch;
|
|
|
| target->pixel_mode = FT_PIXEL_MODE_GRAY;
|
| target->rows = source->rows;
|
| @@ -510,20 +523,20 @@
|
| pad = 0;
|
| if ( alignment > 0 )
|
| {
|
| - pad = source->width % alignment;
|
| + pad = (FT_Int)source->width % alignment;
|
| if ( pad != 0 )
|
| pad = alignment - pad;
|
| }
|
|
|
| - target_pitch = source->width + pad;
|
| + target_pitch = (FT_Int)source->width + pad;
|
|
|
| - if ( target_pitch > 0 &&
|
| - (FT_ULong)target->rows > FT_ULONG_MAX / target_pitch )
|
| + if ( target_pitch > 0 &&
|
| + (FT_ULong)target->rows > FT_ULONG_MAX / (FT_ULong)target_pitch )
|
| return FT_THROW( Invalid_Argument );
|
|
|
| - if ( target->rows * target_pitch > old_size &&
|
| + if ( target->rows * (FT_ULong)target_pitch > old_size &&
|
| FT_QREALLOC( target->buffer,
|
| - old_size, target->rows * target_pitch ) )
|
| + old_size, target->rows * (FT_UInt)target_pitch ) )
|
| return error;
|
|
|
| target->pitch = target->pitch < 0 ? -target_pitch : target_pitch;
|
| @@ -539,9 +552,9 @@
|
|
|
| /* take care of bitmap flow */
|
| if ( source->pitch < 0 )
|
| - s -= source->pitch * ( source->rows - 1 );
|
| + s -= source->pitch * (FT_Int)( source->rows - 1 );
|
| if ( target->pitch < 0 )
|
| - t -= target->pitch * ( target->rows - 1 );
|
| + t -= target->pitch * (FT_Int)( target->rows - 1 );
|
|
|
| switch ( source->pixel_mode )
|
| {
|
| @@ -604,7 +617,7 @@
|
| case FT_PIXEL_MODE_LCD:
|
| case FT_PIXEL_MODE_LCD_V:
|
| {
|
| - FT_Int width = source->width;
|
| + FT_UInt width = source->width;
|
| FT_UInt i;
|
|
|
|
|
| @@ -756,7 +769,7 @@
|
| FT_Error error;
|
|
|
|
|
| - FT_Bitmap_New( &bitmap );
|
| + FT_Bitmap_Init( &bitmap );
|
| error = FT_Bitmap_Copy( slot->library, &slot->bitmap, &bitmap );
|
| if ( error )
|
| return error;
|
|
|