shithub: freetype+ttf2subf

Download patch

ref: 552fc97fe596d13551a380e9ea4a8c7ab27ad4f4
parent: 93771d619f117036da1d20e823840aff6de0e03c
author: Werner Lemberg <[email protected]>
date: Fri Jul 16 03:49:20 EDT 2021

[smooth] Minor fixes.

* src/smooth/ftgrays.c (gray_render_conic): Move variable and
structure declarations to beginning of function.  Inspite of C99
compliance we still do this for the sake of backward compatibility.
This also avoids a shadowing declaration of `count`.
(gray_convert_glyph_inner): Fix typo.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2021-07-16  Werner Lemberg  <[email protected]>
+
+	[smooth] Minor fixes.
+
+	* src/smooth/ftgrays.c (gray_render_conic): Move variable and
+	structure declarations to beginning of function.  Inspite of C99
+	compliance we still do this for the sake of backward compatibility.
+	This also avoids a shadowing declaration of `count`.
+	(gray_convert_glyph_inner): Fix typo.
+
 2021-07-15  Ben Wagner  <[email protected]>
 
 	* src/smooth/ftgrays.c: Guard inclusion of `emmintrin.h`.
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -1030,7 +1030,17 @@
                               const FT_Vector*  to )
   {
     FT_Vector  p0, p1, p2;
+    TPos       dx, dy;
+    int        shift;
 
+    FT_Int64  ax, ay, bx, by;
+    FT_Int64  rx, ry;
+    FT_Int64  qx, qy;
+    FT_Int64  px, py;
+
+    FT_UInt  count;
+
+
     p0.x = ras.x;
     p0.y = ras.y;
     p1.x = UPSCALE( control->x );
@@ -1051,8 +1061,8 @@
       return;
     }
 
-    TPos dx = FT_ABS( p0.x + p2.x - 2 * p1.x );
-    TPos dy = FT_ABS( p0.y + p2.y - 2 * p1.y );
+    dx = FT_ABS( p0.x + p2.x - 2 * p1.x );
+    dy = FT_ABS( p0.y + p2.y - 2 * p1.y );
     if ( dx < dy )
       dx = dy;
 
@@ -1065,7 +1075,7 @@
     /* We can calculate the number of necessary bisections because  */
     /* each bisection predictably reduces deviation exactly 4-fold. */
     /* Even 32-bit deviation would vanish after 16 bisections.      */
-    int shift = 0;
+    shift = 0;
     do
     {
       dx   >>= 2;
@@ -1127,33 +1137,43 @@
 
       } u;
 
+      union
+      {
+        struct { FT_Int32  px_lo, px_hi, py_lo, py_hi; }  i;
+        __m128i  vec;
+
+      } v;
+
+      __m128i  a, b;
+      __m128i  r, q, q2;
+      __m128i  p;
+
+
       u.i.ax = p0.x + p2.x - 2 * p1.x;
       u.i.ay = p0.y + p2.y - 2 * p1.y;
       u.i.bx = p1.x - p0.x;
       u.i.by = p1.y - p0.y;
 
-      __m128i a = _mm_load_si128(&u.vec.a);
-      __m128i b = _mm_load_si128(&u.vec.b);
+      a = _mm_load_si128( &u.vec.a );
+      b = _mm_load_si128( &u.vec.b );
 
-      __m128i r = _mm_slli_epi64(a, 33 - 2 * shift);
-      __m128i q = _mm_slli_epi64(b, 33 - shift);
-      __m128i q2 = _mm_slli_epi64(a, 32 - 2 * shift);
-      q = _mm_add_epi64(q2, q);
+      r  = _mm_slli_epi64( a, 33 - 2 * shift );
+      q  = _mm_slli_epi64( b, 33 - shift );
+      q2 = _mm_slli_epi64( a, 32 - 2 * shift );
 
-      union {
-        struct { FT_Int32  px_lo, px_hi, py_lo, py_hi; } i;
-        __m128i vec;
-      } v;
+      q = _mm_add_epi64( q2, q );
+
       v.i.px_lo = 0;
       v.i.px_hi = p0.x;
       v.i.py_lo = 0;
       v.i.py_hi = p0.y;
 
-      __m128i p = _mm_load_si128(&v.vec);
+      p = _mm_load_si128( &v.vec );
 
-      for (unsigned count = (1u << shift); count > 0; count--) {
-        p = _mm_add_epi64(p, q);
-        q = _mm_add_epi64(q, r);
+      for ( count = ( 1U << shift ); count > 0; count-- )
+      {
+        p = _mm_add_epi64( p, q );
+        q = _mm_add_epi64( q, r );
 
         _mm_store_si128( &v.vec, p );
 
@@ -1162,24 +1182,24 @@
 
       return;
     }
-#endif  /* !__SSE2__ */
-    FT_Int64 ax = p0.x + p2.x - 2 * p1.x;
-    FT_Int64 ay = p0.y + p2.y - 2 * p1.y;
-    FT_Int64 bx = p1.x - p0.x;
-    FT_Int64 by = p1.y - p0.y;
+#endif  /* __SSE2__ */
 
-    FT_Int64 rx = ax << (33 - 2 * shift);
-    FT_Int64 ry = ay << (33 - 2 * shift);
+    ax = p0.x + p2.x - 2 * p1.x;
+    ay = p0.y + p2.y - 2 * p1.y;
+    bx = p1.x - p0.x;
+    by = p1.y - p0.y;
 
-    FT_Int64 qx = (bx << (33 - shift)) + (ax << (32 - 2 * shift));
-    FT_Int64 qy = (by << (33 - shift)) + (ay << (32 - 2 * shift));
+    rx = ax << ( 33 - 2 * shift );
+    ry = ay << ( 33 - 2 * shift );
 
-    FT_Int64 px = (FT_Int64)p0.x << 32;
-    FT_Int64 py = (FT_Int64)p0.y << 32;
+    qx = ( bx << ( 33 - shift ) ) + ( ax << ( 32 - 2 * shift ) );
+    qy = ( by << ( 33 - shift ) ) + ( ay << ( 32 - 2 * shift ) );
 
-	FT_UInt count = 1u << shift;
+    px = (FT_Int64)p0.x << 32;
+    py = (FT_Int64)p0.y << 32;
 
-    for (; count > 0; count--) {
+    for ( count = 1U << shift; count > 0; count-- )
+    {
       px += qx;
       py += qy;
       qx += rx;
@@ -1879,7 +1899,7 @@
       FT_TRACE7(( "band [%d..%d]: %ld cell%s\n",
                   ras.min_ey,
                   ras.max_ey,
-                  ras.cell_free - ras.cells.,
+                  ras.cell_free - ras.cells,
                   ras.cell_free - ras.cells == 1 ? "" : "s" ));
     }
     else