gzip: code shrink

function                                             old     new   delta
flush_block                                          668     665      -3

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-01-31 16:36:17 +01:00
parent 05251986c7
commit 26eea71c87

View File

@ -617,8 +617,8 @@ static void copy_block(char *buf, unsigned len, int header)
bi_windup(); /* align on byte boundary */ bi_windup(); /* align on byte boundary */
if (header) { if (header) {
put_16bit(len); unsigned v = ((uint16_t)len) | ((~len) << 16);
put_16bit(~len); put_32bit(v);
#ifdef DEBUG #ifdef DEBUG
G1.bits_sent += 2 * 16; G1.bits_sent += 2 * 16;
#endif #endif
@ -1747,8 +1747,8 @@ static ulg flush_block(char *buf, ulg stored_len, int eof)
if (buf == NULL) if (buf == NULL)
bb_error_msg("block vanished"); bb_error_msg("block vanished");
copy_block(buf, (unsigned) stored_len, 0); /* without header */
G2.compressed_len = stored_len << 3; G2.compressed_len = stored_len << 3;
copy_block(buf, (unsigned) stored_len, 0); /* without header */
} else if (stored_len + 4 <= opt_lenb && buf != NULL) { } else if (stored_len + 4 <= opt_lenb && buf != NULL) {
/* 4: two words for the lengths */ /* 4: two words for the lengths */
/* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
@ -1758,9 +1758,8 @@ static ulg flush_block(char *buf, ulg stored_len, int eof)
* transform a block into a stored block. * transform a block into a stored block.
*/ */
send_bits((STORED_BLOCK << 1) + eof, 3); /* send block type */ send_bits((STORED_BLOCK << 1) + eof, 3); /* send block type */
G2.compressed_len = (G2.compressed_len + 3 + 7) & ~7L; G2.compressed_len = ((G2.compressed_len + 3 + 7) & ~7L)
G2.compressed_len += (stored_len + 4) << 3; + ((stored_len + 4) << 3);
copy_block(buf, (unsigned) stored_len, 1); /* with header */ copy_block(buf, (unsigned) stored_len, 1); /* with header */
} else if (static_lenb == opt_lenb) { } else if (static_lenb == opt_lenb) {
send_bits((STATIC_TREES << 1) + eof, 3); send_bits((STATIC_TREES << 1) + eof, 3);