Commit c2e2a8e5d9dbc1d06064b93fbdcae6737ddc2f5b

Werner Lemberg 2018-04-22T17:13:50

Revert "[base] Fix bitmap copying where the new pitch is smaller." This reverts commit c0f1adedcfaad4f7d2fe912ff4b2933845d61d93.

diff --git a/ChangeLog b/ChangeLog
index 5cdf5be..4dc8c55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,5 @@
 2018-04-22  Werner Lemberg  <wl@gnu.org>
 
-	[base] Fix bitmap copying where the new pitch is smaller.
-
-	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Handle it.
-
-2018-04-22  Werner Lemberg  <wl@gnu.org>
-
 	Another fix for handling invalid format 2 cmaps.
 
 	The previous commit was incomplete.
diff --git a/src/base/ftbitmap.c b/src/base/ftbitmap.c
index 4f5ca5a..93efb09 100644
--- a/src/base/ftbitmap.c
+++ b/src/base/ftbitmap.c
@@ -237,35 +237,20 @@
       unsigned char*  out = buffer;
 
       unsigned char*  limit = bitmap->buffer + pitch * bitmap->rows;
+      unsigned int    delta = new_pitch - pitch;
 
 
       FT_MEM_ZERO( out, new_pitch * ypixels );
       out += new_pitch * ypixels;
 
-      if ( new_pitch > pitch )
+      while ( in < limit )
       {
-        unsigned int  delta = new_pitch - pitch;
+        FT_MEM_COPY( out, in, len );
+        in  += pitch;
+        out += pitch;
 
-
-        while ( in < limit )
-        {
-          FT_MEM_COPY( out, in, len );
-          in  += pitch;
-          out += pitch;
-
-          /* we have to zero out the new (unused) pitch bytes */
-          FT_MEM_ZERO( out, delta );
-          out += delta;
-        }
-      }
-      else
-      {
-        while ( in < limit )
-        {
-          FT_MEM_COPY( out, in, len );
-          in  += pitch;
-          out += new_pitch;
-        }
+        FT_MEM_ZERO( out, delta );
+        out += delta;
       }
     }
     else
@@ -276,32 +261,17 @@
       unsigned char*  out = buffer;
 
       unsigned char*  limit = bitmap->buffer + pitch * bitmap->rows;
+      unsigned int    delta = new_pitch - pitch;
 
 
-      if ( new_pitch > pitch )
+      while ( in < limit )
       {
-        unsigned int  delta = new_pitch - pitch;
+        FT_MEM_COPY( out, in, len );
+        in  += pitch;
+        out += pitch;
 
-
-        while ( in < limit )
-        {
-          FT_MEM_COPY( out, in, len );
-          in  += pitch;
-          out += pitch;
-
-          /* we have to zero out the new (unused) pitch bytes */
-          FT_MEM_ZERO( out, delta );
-          out += delta;
-        }
-      }
-      else
-      {
-        while ( in < limit )
-        {
-          FT_MEM_COPY( out, in, len );
-          in  += pitch;
-          out += new_pitch;
-        }
+        FT_MEM_ZERO( out, delta );
+        out += delta;
       }
 
       FT_MEM_ZERO( out, new_pitch * ypixels );