diff --git a/ChangeLog b/ChangeLog index d482631ea..679327a9b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,8 @@ -2021-05-07 Alexei Podtelezhnikov +2021-05-11 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code. + +2021-05-11 Alexei Podtelezhnikov [smooth] Faster bitmap sweeping. diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c index a40877e7d..c29f4bfd3 100644 --- a/src/smooth/ftgrays.c +++ b/src/smooth/ftgrays.c @@ -409,22 +409,21 @@ typedef ptrdiff_t FT_PtrDist; /* It is faster to write small spans byte-by-byte than calling */ /* `memset'. This is mainly due to the cost of the function call. */ -#define FT_GRAY_SET( d, s, count ) \ - FT_BEGIN_STMNT \ - unsigned char* q = d; \ - unsigned char c = (unsigned char)s; \ - switch ( count ) \ - { \ - case 7: *q++ = c; /* fall through */ \ - case 6: *q++ = c; /* fall through */ \ - case 5: *q++ = c; /* fall through */ \ - case 4: *q++ = c; /* fall through */ \ - case 3: *q++ = c; /* fall through */ \ - case 2: *q++ = c; /* fall through */ \ - case 1: *q = c; /* fall through */ \ - case 0: break; \ - default: FT_MEM_SET( d, s, count ); \ - } \ +#define FT_GRAY_SET( d, s, count ) \ + FT_BEGIN_STMNT \ + unsigned char* q = d; \ + switch ( count ) \ + { \ + case 7: *q++ = (unsigned char)s; /* fall through */ \ + case 6: *q++ = (unsigned char)s; /* fall through */ \ + case 5: *q++ = (unsigned char)s; /* fall through */ \ + case 4: *q++ = (unsigned char)s; /* fall through */ \ + case 3: *q++ = (unsigned char)s; /* fall through */ \ + case 2: *q++ = (unsigned char)s; /* fall through */ \ + case 1: *q = (unsigned char)s; /* fall through */ \ + case 0: break; \ + default: FT_MEM_SET( d, s, count ); \ + } \ FT_END_STMNT