summaryrefslogtreecommitdiff
path: root/libbb/crc32.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-04-10 21:40:19 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-04-10 21:40:19 +0000
commitc6758a07c68033627a692cda27aebc8f6a662e7f (patch)
tree51bc0b498a5e16f8041604d913e25708cc76058f /libbb/crc32.c
parent335b63d8d1876ce4e172ebcc9d64544785682244 (diff)
downloadbusybox-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.c7
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
19uint32_t *crc32_filltable(int endian) 19uint32_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--) {