summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch50
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
+