[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.
This commit is contained in:
Alexei Podtelezhnikov 2018-04-22 17:22:35 +02:00 committed by Werner Lemberg
parent c2e2a8e5d9
commit 3b88576ba0
2 changed files with 16 additions and 4 deletions

View File

@ -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.

View File

@ -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;