diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-07-01 05:12:28 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-07-01 05:12:28 +0200 |
commit | 45f66167fe96de219aac91d842f3e64d857340f6 (patch) | |
tree | c141f2aa8213089258125b370a7427bf14937aaf /archival/libunarchive | |
parent | 620e863ba24fe9e0126d1540e89a531264021a77 (diff) | |
download | busybox-w32-45f66167fe96de219aac91d842f3e64d857340f6.tar.gz busybox-w32-45f66167fe96de219aac91d842f3e64d857340f6.tar.bz2 busybox-w32-45f66167fe96de219aac91d842f3e64d857340f6.zip |
xz compression detection: avoid the need to seek
function old new delta
unpack_unxz 12 67 +55
unpack_xz_stream 2357 2373 +16
xmalloc_read 197 199 +2
setup_unzip_on_fd 118 99 -19
rpm2cpio_main 222 203 -19
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/2 up/down: 73/-38) Total: 35 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/libunarchive')
-rw-r--r-- | archival/libunarchive/decompress_unxz.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/archival/libunarchive/decompress_unxz.c b/archival/libunarchive/decompress_unxz.c index 5d7513a2e..721acd907 100644 --- a/archival/libunarchive/decompress_unxz.c +++ b/archival/libunarchive/decompress_unxz.c | |||
@@ -56,9 +56,11 @@ unpack_xz_stream(int src_fd, int dst_fd) | |||
56 | if (!crc32_table) | 56 | if (!crc32_table) |
57 | crc32_table = crc32_filltable(NULL, /*endian:*/ 0); | 57 | crc32_table = crc32_filltable(NULL, /*endian:*/ 0); |
58 | 58 | ||
59 | membuf = xmalloc(2 * BUFSIZ); | ||
60 | memset(&iobuf, 0, sizeof(iobuf)); | 59 | memset(&iobuf, 0, sizeof(iobuf)); |
60 | /* Preload XZ file signature */ | ||
61 | membuf = (void*) strcpy(xmalloc(2 * BUFSIZ), HEADER_MAGIC); | ||
61 | iobuf.in = membuf; | 62 | iobuf.in = membuf; |
63 | iobuf.in_size = HEADER_MAGIC_SIZE; | ||
62 | iobuf.out = membuf + BUFSIZ; | 64 | iobuf.out = membuf + BUFSIZ; |
63 | iobuf.out_size = BUFSIZ; | 65 | iobuf.out_size = BUFSIZ; |
64 | 66 | ||