aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-03-18 03:13:25 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-03-18 03:13:25 +0000
commitc0183e6e0d0ad0b60b8891cd0a1eeabf3406805c (patch)
tree0ffc01e67f6d85005086426d375471d2b139e426
parent6aa7696e280181cd87f7569ce65696b760dca891 (diff)
downloadbusybox-w32-c0183e6e0d0ad0b60b8891cd0a1eeabf3406805c.tar.gz
busybox-w32-c0183e6e0d0ad0b60b8891cd0a1eeabf3406805c.tar.bz2
busybox-w32-c0183e6e0d0ad0b60b8891cd0a1eeabf3406805c.zip
unlzma: shrink by Pascal Bellard <pascal.bellard AT ads-lu.com>
-rw-r--r--archival/libunarchive/decompress_unlzma.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/archival/libunarchive/decompress_unlzma.c b/archival/libunarchive/decompress_unlzma.c
index aea0c8d94..5fb7eaee0 100644
--- a/archival/libunarchive/decompress_unlzma.c
+++ b/archival/libunarchive/decompress_unlzma.c
@@ -324,6 +324,7 @@ unpack_lzma_stream(int src_fd, int dst_fd)
324 324
325 previous_byte = (uint8_t) mi; 325 previous_byte = (uint8_t) mi;
326#if ENABLE_FEATURE_LZMA_FAST 326#if ENABLE_FEATURE_LZMA_FAST
327 one_byte1:
327 buffer[buffer_pos++] = previous_byte; 328 buffer[buffer_pos++] = previous_byte;
328 if (buffer_pos == header.dict_size) { 329 if (buffer_pos == header.dict_size) {
329 buffer_pos = 0; 330 buffer_pos = 0;
@@ -334,7 +335,7 @@ unpack_lzma_stream(int src_fd, int dst_fd)
334 } 335 }
335#else 336#else
336 len = 1; 337 len = 1;
337 goto one_byte; 338 goto one_byte2;
338#endif 339#endif
339 } else { 340 } else {
340 int offset; 341 int offset;
@@ -367,15 +368,7 @@ unpack_lzma_stream(int src_fd, int dst_fd)
367 while (pos >= header.dict_size) 368 while (pos >= header.dict_size)
368 pos += header.dict_size; 369 pos += header.dict_size;
369 previous_byte = buffer[pos]; 370 previous_byte = buffer[pos];
370 buffer[buffer_pos++] = previous_byte; 371 goto one_byte1;
371 if (buffer_pos == header.dict_size) {
372 buffer_pos = 0;
373 global_pos += header.dict_size;
374 if (full_write(dst_fd, buffer, header.dict_size) != header.dict_size)
375 goto bad;
376 USE_DESKTOP(total_written += header.dict_size;)
377 }
378 continue;
379#else 372#else
380 len = 1; 373 len = 1;
381 goto string; 374 goto string;
@@ -482,7 +475,7 @@ unpack_lzma_stream(int src_fd, int dst_fd)
482 while (pos >= header.dict_size) 475 while (pos >= header.dict_size)
483 pos += header.dict_size; 476 pos += header.dict_size;
484 previous_byte = buffer[pos]; 477 previous_byte = buffer[pos];
485 SKIP_FEATURE_LZMA_FAST(one_byte:) 478 SKIP_FEATURE_LZMA_FAST(one_byte2:)
486 buffer[buffer_pos++] = previous_byte; 479 buffer[buffer_pos++] = previous_byte;
487 if (buffer_pos == header.dict_size) { 480 if (buffer_pos == header.dict_size) {
488 buffer_pos = 0; 481 buffer_pos = 0;