Better round positions during scaling
Fixes https://github.com/harfbuzz/harfbuzz/issues/3274
diff --git a/src/hb-font.hh b/src/hb-font.hh
index dd5cd13..1b7f445 100644
--- a/src/hb-font.hh
+++ b/src/hb-font.hh
@@ -620,9 +620,7 @@
}
hb_position_t em_mult (int16_t v, int64_t mult)
- {
- return (hb_position_t) ((v * mult) >> 16);
- }
+ { return (hb_position_t) ((v * mult + 32768) >> 16); }
hb_position_t em_scalef (float v, int scale)
{ return (hb_position_t) roundf (v * scale / face->get_upem ()); }
float em_fscale (int16_t v, int scale)