shithub: freetype+ttf2subf

Download patch

ref: d0b0e31ed775b599912bb021f762deaf39dae3f5
parent: caa48b0db1a4a79f08670d45027988799b2e4c3c
author: Alexei Podtelezhnikov <[email protected]>
date: Sun Mar 6 18:01:50 EST 2016

[smooth] Replace left shifts with multiplications (#47114).

* src/smooth/ftgrays.c (SUBPIXELS, UPSCALE, DOWNSCALE): Do it.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-03-06  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Replace left shifts with multiplications (#47114).
+
+	* src/smooth/ftgrays.c (SUBPIXELS, UPSCALE, DOWNSCALE): Do it.
+
 2016-03-05  Werner Lemberg  <[email protected]>
 
 	[autofit] Avoid excessive stem length rounding (#25392).
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -320,17 +320,17 @@
 
 #define ONE_PIXEL       ( 1L << PIXEL_BITS )
 #define TRUNC( x )      ( (TCoord)( (x) >> PIXEL_BITS ) )
-#define SUBPIXELS( x )  ( (TPos)(x) << PIXEL_BITS )
+#define SUBPIXELS( x )  ( (TPos)(x) * ONE_PIXEL )
 #define FLOOR( x )      ( (x) & -ONE_PIXEL )
 #define CEILING( x )    ( ( (x) + ONE_PIXEL - 1 ) & -ONE_PIXEL )
 #define ROUND( x )      ( ( (x) + ONE_PIXEL / 2 ) & -ONE_PIXEL )
 
 #if PIXEL_BITS >= 6
-#define UPSCALE( x )    ( (x) << ( PIXEL_BITS - 6 ) )
+#define UPSCALE( x )    ( (x) * ( ONE_PIXEL >> 6 ) )
 #define DOWNSCALE( x )  ( (x) >> ( PIXEL_BITS - 6 ) )
 #else
 #define UPSCALE( x )    ( (x) >> ( 6 - PIXEL_BITS ) )
-#define DOWNSCALE( x )  ( (x) << ( 6 - PIXEL_BITS ) )
+#define DOWNSCALE( x )  ( (x) * ( 64 >> PIXEL_BITS ) )
 #endif