| 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 |
| |