shithub: freetype+ttf2subf

Download patch

ref: f27b4834b7dcf9d667fd5173106be0cddb0ec1c2
parent: 90ecac4118eb18b2f9e2f72cc0e0fdd42144bfe3
author: Alexei Podtelezhnikov <[email protected]>
date: Wed Jun 30 06:54:59 EDT 2021

* src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2021-06-30  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'.
+
 2021-06-29  Alexei Podtelezhnikov  <[email protected]>
 
 	[raster] Do not skip the second pass without dropout control.
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -366,16 +366,6 @@
   typedef PProfile*  PProfileList;
 
 
-  /* Simple record used to implement a stack of bands, required */
-  /* by the sub-banding mechanism                               */
-  typedef struct  black_TBand_
-  {
-    Int  y_min;   /* band's minimum */
-    Int  y_max;   /* band's maximum */
-
-  } black_TBand;
-
-
 #define AlignProfileSize \
   ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( Long ) )
 
@@ -3027,11 +3017,9 @@
   {
     Int  y_mid;
     Int  band_top = 0;
+    Int  band_stack[32];  /* enough to bisect 32-bit int bands */
 
-    black_TBand  band_stack[16];    /* band stack used for sub-banding     */
-                                    /* enough for signed short bands       */
 
-
     while ( 1 )
     {
       ras.minY = (Long)y_min * ras.precision;
@@ -3053,12 +3041,8 @@
 
         y_mid = ( y_min + y_max ) >> 1;
 
-        band_stack[band_top].y_min = y_min;
-        band_stack[band_top].y_max = y_mid;
-
-        band_top++;
-
-        y_min = y_mid + 1;
+        band_stack[band_top++] = y_min;
+        y_min                  = y_mid + 1;
       }
       else
       {
@@ -3069,8 +3053,8 @@
         if ( --band_top < 0 )
           break;
 
-        y_min = band_stack[band_top].y_min;
-        y_max = band_stack[band_top].y_max;
+        y_max = y_min - 1;
+        y_min = band_stack[band_top];
       }
     }