From c2e2a8e5d9dbc1d06064b93fbdcae6737ddc2f5b Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Sun, 22 Apr 2018 17:13:50 +0200 Subject: Revert "[base] Fix bitmap copying where the new pitch is smaller." This reverts commit c0f1adedcfaad4f7d2fe912ff4b2933845d61d93. --- ChangeLog | 6 ------ src/base/ftbitmap.c | 58 +++++++++++++---------------------------------------- 2 files changed, 14 insertions(+), 50 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5cdf5be14..4dc8c552a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,3 @@ -2018-04-22 Werner Lemberg - - [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 Another fix for handling invalid format 2 cmaps. diff --git a/src/base/ftbitmap.c b/src/base/ftbitmap.c index 4f5ca5a59..93efb0944 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 ); -- cgit v1.2.1