diff options
Diffstat (limited to 'media-libs/freetype/files/freetype-2.6.1-bad-shift.patch')
-rw-r--r-- | media-libs/freetype/files/freetype-2.6.1-bad-shift.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/media-libs/freetype/files/freetype-2.6.1-bad-shift.patch b/media-libs/freetype/files/freetype-2.6.1-bad-shift.patch new file mode 100644 index 000000000000..c361baf2a06f --- /dev/null +++ b/media-libs/freetype/files/freetype-2.6.1-bad-shift.patch @@ -0,0 +1,50 @@ +taken from upstream + +http://savannah.nongnu.org/bugs/?func=detailitem&item_id=46118 + +From 30fe5e762e062612fdf4b56b50d813525a5aa311 Mon Sep 17 00:00:00 2001 +From: Werner Lemberg <wl@gnu.org> +Date: Sun, 4 Oct 2015 13:08:08 +0200 +Subject: [PATCH] [base] Replace left shifts with multiplication (#46118). + +* src/base/ftglyph.c (ft_bitmap_glyph_bbox, FT_Get_Glyph): Do it. +--- + ChangeLog | 6 ++++++ + src/base/ftglyph.c | 14 +++++++------- + 2 files changed, 13 insertions(+), 7 deletions(-) + +diff --git a/src/base/ftglyph.c b/src/base/ftglyph.c +index cb7fc37..2778743 100644 +--- a/src/base/ftglyph.c ++++ b/src/base/ftglyph.c +@@ -125,10 +125,10 @@ + FT_BitmapGlyph glyph = (FT_BitmapGlyph)bitmap_glyph; + + +- cbox->xMin = glyph->left << 6; +- cbox->xMax = cbox->xMin + (FT_Pos)( glyph->bitmap.width << 6 ); +- cbox->yMax = glyph->top << 6; +- cbox->yMin = cbox->yMax - (FT_Pos)( glyph->bitmap.rows << 6 ); ++ cbox->xMin = glyph->left * 64; ++ cbox->xMax = cbox->xMin + (FT_Pos)( glyph->bitmap.width * 64 ); ++ cbox->yMax = glyph->top * 64; ++ cbox->yMin = cbox->yMax - (FT_Pos)( glyph->bitmap.rows * 64 ); + } + + +@@ -403,9 +403,9 @@ + if ( error ) + goto Exit; + +- /* copy advance while converting it to 16.16 format */ +- glyph->advance.x = slot->advance.x << 10; +- glyph->advance.y = slot->advance.y << 10; ++ /* copy advance while converting 26.6 to 16.16 format */ ++ glyph->advance.x = slot->advance.x * 1024; ++ glyph->advance.y = slot->advance.y * 1024; + + /* now import the image from the glyph slot */ + error = clazz->glyph_init( glyph, slot ); +-- +2.5.2 + |