mirror of
https://github.com/sheumann/hush.git
synced 2024-09-13 06:54:44 +00:00
decompress_uncompress: move 'code' variable into loop - sole user
Apparently, gcc does this optimization itself, since generated code is the same. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
4ba6c5d3ba
commit
c71547ccfc
@ -78,7 +78,6 @@ unpack_Z_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
|
|||||||
IF_DESKTOP(long long total_written = 0;)
|
IF_DESKTOP(long long total_written = 0;)
|
||||||
IF_DESKTOP(long long) int retval = -1;
|
IF_DESKTOP(long long) int retval = -1;
|
||||||
unsigned char *stackp;
|
unsigned char *stackp;
|
||||||
long code;
|
|
||||||
int finchar;
|
int finchar;
|
||||||
long oldcode;
|
long oldcode;
|
||||||
long incode;
|
long incode;
|
||||||
@ -143,8 +142,10 @@ unpack_Z_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
|
|||||||
/* As above, initialize the first 256 entries in the table. */
|
/* As above, initialize the first 256 entries in the table. */
|
||||||
/*clear_tab_prefixof(); - done by xzalloc */
|
/*clear_tab_prefixof(); - done by xzalloc */
|
||||||
|
|
||||||
for (code = 255; code >= 0; --code) {
|
{
|
||||||
tab_suffixof(code) = (unsigned char) code;
|
int i;
|
||||||
|
for (i = 255; i >= 0; --i)
|
||||||
|
tab_suffixof(i) = (unsigned char) i;
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
@ -175,6 +176,8 @@ unpack_Z_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
|
|||||||
(insize << 3) - (n_bits - 1));
|
(insize << 3) - (n_bits - 1));
|
||||||
|
|
||||||
while (inbits > posbits) {
|
while (inbits > posbits) {
|
||||||
|
long code;
|
||||||
|
|
||||||
if (free_ent > maxcode) {
|
if (free_ent > maxcode) {
|
||||||
posbits =
|
posbits =
|
||||||
((posbits - 1) +
|
((posbits - 1) +
|
||||||
@ -191,13 +194,12 @@ unpack_Z_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
unsigned char *p = &inbuf[posbits >> 3];
|
unsigned char *p = &inbuf[posbits >> 3];
|
||||||
|
code = ((p[0]
|
||||||
code = ((((long) (p[0])) | ((long) (p[1]) << 8) |
|
| ((long) (p[1]) << 8)
|
||||||
((long) (p[2]) << 16)) >> (posbits & 0x7)) & bitmask;
|
| ((long) (p[2]) << 16)) >> (posbits & 0x7)) & bitmask;
|
||||||
}
|
}
|
||||||
posbits += n_bits;
|
posbits += n_bits;
|
||||||
|
|
||||||
|
|
||||||
if (oldcode == -1) {
|
if (oldcode == -1) {
|
||||||
if (code >= 256)
|
if (code >= 256)
|
||||||
bb_error_msg_and_die("corrupted data"); /* %ld", code); */
|
bb_error_msg_and_die("corrupted data"); /* %ld", code); */
|
||||||
@ -244,7 +246,7 @@ unpack_Z_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Generate output characters in reverse order */
|
/* Generate output characters in reverse order */
|
||||||
while ((long) code >= (long) 256) {
|
while (code >= 256) {
|
||||||
if (stackp <= &htabof(0))
|
if (stackp <= &htabof(0))
|
||||||
bb_error_msg_and_die("corrupted data");
|
bb_error_msg_and_die("corrupted data");
|
||||||
*--stackp = tab_suffixof(code);
|
*--stackp = tab_suffixof(code);
|
||||||
@ -285,11 +287,10 @@ unpack_Z_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Generate the new entry. */
|
/* Generate the new entry. */
|
||||||
code = free_ent;
|
if (free_ent < maxmaxcode) {
|
||||||
if (code < maxmaxcode) {
|
tab_prefixof(free_ent) = (unsigned short) oldcode;
|
||||||
tab_prefixof(code) = (unsigned short) oldcode;
|
tab_suffixof(free_ent) = (unsigned char) finchar;
|
||||||
tab_suffixof(code) = (unsigned char) finchar;
|
free_ent++;
|
||||||
free_ent = code + 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remember previous code. */
|
/* Remember previous code. */
|
||||||
|
Loading…
Reference in New Issue
Block a user