[HarfBuzz] harfbuzz: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Tue Jun 7 06:09:27 UTC 2016


 src/hb-font-private.hh |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit 4b8de1ea804b225e8357422d0686aad76b05ccf3
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Jun 6 23:08:54 2016 -0700

    Round, not truncate, when scaling values
    
    Fixes https://github.com/behdad/harfbuzz/issues/255

diff --git a/src/hb-font-private.hh b/src/hb-font-private.hh
index 8da40a9..0b75577 100644
--- a/src/hb-font-private.hh
+++ b/src/hb-font-private.hh
@@ -505,7 +505,13 @@ struct hb_font_t {
   }
 
   private:
-  inline hb_position_t em_scale (int16_t v, int scale) { return (hb_position_t) (v * (int64_t) scale / face->get_upem ()); }
+  inline hb_position_t em_scale (int16_t v, int scale)
+  {
+    int upem = face->get_upem ();
+    int64_t scaled = v * (int64_t) scale;
+    scaled += scaled >= 0 ? upem/2 : -upem/2; /* Round. */
+    return (hb_position_t) (scaled / upem);
+  }
 };
 
 #define HB_SHAPER_DATA_CREATE_FUNC_EXTRA_ARGS


More information about the HarfBuzz mailing list