[base] Fix bitmap emboldening.

Bug introduced after release 2.8.

* src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use
`FT_QALLOC_MULT', which doesn't zero out the buffer.  Adjust the
bitmap copying code to take care of this fact.
Harmony
Alexei Podtelezhnikov 7 years ago committed by Werner Lemberg
parent c2e2a8e5d9
commit 3b88576ba0
  1. 10
      ChangeLog
  2. 10
      src/base/ftbitmap.c

@ -1,3 +1,13 @@
2018-04-22 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Fix bitmap emboldening.
Bug introduced after release 2.8.
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use
`FT_QALLOC_MULT', which doesn't zero out the buffer. Adjust the
bitmap copying code to take care of this fact.
2018-04-22 Werner Lemberg <wl@gnu.org>
Another fix for handling invalid format 2 cmaps.

@ -237,7 +237,7 @@
unsigned char* out = buffer;
unsigned char* limit = bitmap->buffer + pitch * bitmap->rows;
unsigned int delta = new_pitch - pitch;
unsigned int delta = new_pitch - len;
FT_MEM_ZERO( out, new_pitch * ypixels );
@ -247,8 +247,10 @@
{
FT_MEM_COPY( out, in, len );
in += pitch;
out += pitch;
out += len;
/* we use FT_QALLOC_MULT, which doesn't zero out the buffer; */
/* consequently, we have to manually zero out the remaining bytes */
FT_MEM_ZERO( out, delta );
out += delta;
}
@ -261,14 +263,14 @@
unsigned char* out = buffer;
unsigned char* limit = bitmap->buffer + pitch * bitmap->rows;
unsigned int delta = new_pitch - pitch;
unsigned int delta = new_pitch - len;
while ( in < limit )
{
FT_MEM_COPY( out, in, len );
in += pitch;
out += pitch;
out += len;
FT_MEM_ZERO( out, delta );
out += delta;

Loading…
Cancel
Save