aboutsummaryrefslogtreecommitdiff
path: root/archival/gzip.c
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2010-10-27 15:26:45 +0200
committerDenys Vlasenko <dvlasenk@redhat.com>2010-10-27 15:26:45 +0200
commit9ce642f9746dfc29d119d0680b769677e3ea6da6 (patch)
treef8d2bcd08c691979058b610b32573a742a3e3024 /archival/gzip.c
parentdd88ba88f5082b1785539b1fb87af7320515b8c9 (diff)
downloadbusybox-w32-9ce642f9746dfc29d119d0680b769677e3ea6da6.tar.gz
busybox-w32-9ce642f9746dfc29d119d0680b769677e3ea6da6.tar.bz2
busybox-w32-9ce642f9746dfc29d119d0680b769677e3ea6da6.zip
libbb: introduce and use common crc32 routine
function old new delta crc32_block_endian1 - 37 +37 crc32_block_endian0 - 34 +34 global_crc32_table - 8 +8 file_read 82 87 +5 gzip_main 211 214 +3 xz_crc32 40 35 -5 crc32_table 8 - -8 calculate_gunzip_crc 54 34 -20 lzo_crc32 54 25 -29 cksum_main 298 211 -87 ------------------------------------------------------------------------------ (add/remove: 3/1 grow/shrink: 2/4 up/down: 87/-149) Total: -62 bytes Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'archival/gzip.c')
-rw-r--r--archival/gzip.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/archival/gzip.c b/archival/gzip.c
index 32528d96b..4d399063d 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -340,7 +340,7 @@ struct globals {
340 ulg bits_sent; /* bit length of the compressed data */ 340 ulg bits_sent; /* bit length of the compressed data */
341#endif 341#endif
342 342
343 uint32_t *crc_32_tab; 343 /*uint32_t *crc_32_tab;*/
344 uint32_t crc; /* shift register contents */ 344 uint32_t crc; /* shift register contents */
345}; 345};
346 346
@@ -393,15 +393,9 @@ static void put_32bit(ulg n)
393 * pointer, then initialize the crc shift register contents instead. 393 * pointer, then initialize the crc shift register contents instead.
394 * Return the current crc in either case. 394 * Return the current crc in either case.
395 */ 395 */
396static uint32_t updcrc(uch * s, unsigned n) 396static void updcrc(uch * s, unsigned n)
397{ 397{
398 uint32_t c = G1.crc; 398 G1.crc = crc32_block_endian0(G1.crc, s, n, global_crc32_table /*G1.crc_32_tab*/);
399 while (n) {
400 c = G1.crc_32_tab[(uch)(c ^ *s++)] ^ (c >> 8);
401 n--;
402 }
403 G1.crc = c;
404 return c;
405} 399}
406 400
407 401
@@ -2104,8 +2098,8 @@ int gzip_main(int argc UNUSED_PARAM, char **argv)
2104 ALLOC(uch, G1.window, 2L * WSIZE); 2098 ALLOC(uch, G1.window, 2L * WSIZE);
2105 ALLOC(ush, G1.prev, 1L << BITS); 2099 ALLOC(ush, G1.prev, 1L << BITS);
2106 2100
2107 /* Initialise the CRC32 table */ 2101 /* Initialize the CRC32 table */
2108 G1.crc_32_tab = crc32_filltable(NULL, 0); 2102 global_crc32_table = crc32_filltable(NULL, 0);
2109 2103
2110 return bbunpack(argv, pack_gzip, append_ext, "gz"); 2104 return bbunpack(argv, pack_gzip, append_ext, "gz");
2111} 2105}