diff --git a/ChangeLog b/ChangeLog index a22c69396..8aaa78e58 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2016-08-16 Werner Lemberg + + [lzw] Optimize last commit. + + * src/lzw/ftzopen.c (ft_lzwstate_get_code): Move check into + conditional clause. + 2016-08-16 Werner Lemberg [lzw] Avoid invalid left shift. diff --git a/src/lzw/ftzopen.c b/src/lzw/ftzopen.c index ae79fdd24..9e66ba983 100644 --- a/src/lzw/ftzopen.c +++ b/src/lzw/ftzopen.c @@ -65,16 +65,16 @@ FT_Int result; - if ( num_bits > LZW_MAX_BITS ) - return -1; - if ( state->buf_clear || offset >= state->buf_size || state->free_ent >= state->free_bits ) { if ( state->free_ent >= state->free_bits ) { - state->num_bits = ++num_bits; + state->num_bits = ++num_bits; + if ( num_bits > LZW_MAX_BITS ) + return -1; + state->free_bits = state->num_bits < state->max_bits ? (FT_UInt)( ( 1UL << num_bits ) - 256 ) : state->max_free + 1;