diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-04-10 21:40:19 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-04-10 21:40:19 +0000 |
commit | c6758a07c68033627a692cda27aebc8f6a662e7f (patch) | |
tree | 51bc0b498a5e16f8041604d913e25708cc76058f /libbb/crc32.c | |
parent | 335b63d8d1876ce4e172ebcc9d64544785682244 (diff) | |
download | busybox-w32-c6758a07c68033627a692cda27aebc8f6a662e7f.tar.gz busybox-w32-c6758a07c68033627a692cda27aebc8f6a662e7f.tar.bz2 busybox-w32-c6758a07c68033627a692cda27aebc8f6a662e7f.zip |
make compressed help code NOMMU- and NOFORK-friendly -
no forking anymore, bunzip2 unpack routine now does all it in memory.
Diffstat (limited to 'libbb/crc32.c')
-rw-r--r-- | libbb/crc32.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libbb/crc32.c b/libbb/crc32.c index 1e4a57e8a..acbc45827 100644 --- a/libbb/crc32.c +++ b/libbb/crc32.c | |||
@@ -16,14 +16,15 @@ | |||
16 | 16 | ||
17 | #include "libbb.h" | 17 | #include "libbb.h" |
18 | 18 | ||
19 | uint32_t *crc32_filltable(int endian) | 19 | uint32_t *crc32_filltable(uint32_t *crc_table, int endian) |
20 | { | 20 | { |
21 | |||
22 | uint32_t *crc_table = xmalloc(256 * sizeof(uint32_t)); | ||
23 | uint32_t polynomial = endian ? 0x04c11db7 : 0xedb88320; | 21 | uint32_t polynomial = endian ? 0x04c11db7 : 0xedb88320; |
24 | uint32_t c; | 22 | uint32_t c; |
25 | int i, j; | 23 | int i, j; |
26 | 24 | ||
25 | if (!crc_table) | ||
26 | crc_table = xmalloc(256 * sizeof(uint32_t)); | ||
27 | |||
27 | for (i = 0; i < 256; i++) { | 28 | for (i = 0; i < 256; i++) { |
28 | c = endian ? (i << 24) : i; | 29 | c = endian ? (i << 24) : i; |
29 | for (j = 8; j; j--) { | 30 | for (j = 8; j; j--) { |