diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-07-10 17:43:01 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-07-10 17:43:01 +0000 |
commit | b6052724ffc9d45894147b70e7aff226938bd2d3 (patch) | |
tree | e39d062e16d85da315cdb8cc0a96a03f15c10a23 /archival | |
parent | 0e2c93fc0b5f335d731ff712ce8f42d8616f05b9 (diff) | |
download | busybox-b6052724ffc9d45894147b70e7aff226938bd2d3.tar.gz |
open_transformer: do not return fd, it does not change
libbb: adopt zipped read from modprobe-small
function old new delta
getoptscmd 708 713 +5
qgravechar 106 109 +3
huft_build 1165 1168 +3
tr_main 474 472 -2
open_transformer 91 89 -2
evalvar 1376 1374 -2
rpm_main 1691 1688 -3
qrealloc 36 33 -3
get_header_tar_lzma 55 52 -3
get_header_tar_gz 100 97 -3
get_header_tar_bz2 55 52 -3
get_header_tar_Z 89 86 -3
find_main 418 406 -12
prepare 302 283 -19
xmalloc_open_zipped_read_close 161 135 -26
xmalloc_read 248 199 -49
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/13 up/down: 11/-130) Total: -119 bytes
Diffstat (limited to 'archival')
-rw-r--r-- | archival/libunarchive/Kbuild | 2 | ||||
-rw-r--r-- | archival/libunarchive/get_header_tar_bz2.c | 2 | ||||
-rw-r--r-- | archival/libunarchive/get_header_tar_gz.c | 2 | ||||
-rw-r--r-- | archival/libunarchive/get_header_tar_lzma.c | 2 | ||||
-rw-r--r-- | archival/libunarchive/open_transformer.c | 19 | ||||
-rw-r--r-- | archival/rpm.c | 2 | ||||
-rw-r--r-- | archival/tar.c | 2 |
7 files changed, 15 insertions, 16 deletions
diff --git a/archival/libunarchive/Kbuild b/archival/libunarchive/Kbuild index 1bc054a96..609bc50cb 100644 --- a/archival/libunarchive/Kbuild +++ b/archival/libunarchive/Kbuild @@ -43,6 +43,8 @@ lib-$(CONFIG_FEATURE_DEB_TAR_GZ) += open_transformer.o lib-$(CONFIG_FEATURE_DEB_TAR_BZ2) += open_transformer.o lib-$(CONFIG_FEATURE_DEB_TAR_LZMA) += open_transformer.o +lib-$(CONFIG_FEATURE_MODPROBE_SMALL_ZIPPED) += open_transformer.o decompress_unzip.o decompress_bunzip2.o + lib-$(CONFIG_AR) += get_header_ar.o unpack_ar_archive.o lib-$(CONFIG_BUNZIP2) += decompress_bunzip2.o lib-$(CONFIG_UNLZMA) += decompress_unlzma.o diff --git a/archival/libunarchive/get_header_tar_bz2.c b/archival/libunarchive/get_header_tar_bz2.c index cfdc016d6..035c10bfb 100644 --- a/archival/libunarchive/get_header_tar_bz2.c +++ b/archival/libunarchive/get_header_tar_bz2.c @@ -11,7 +11,7 @@ char FAST_FUNC get_header_tar_bz2(archive_handle_t *archive_handle) /* Can't lseek over pipes */ archive_handle->seek = seek_by_read; - archive_handle->src_fd = open_transformer(archive_handle->src_fd, unpack_bz2_stream, "bunzip2"); + open_transformer(archive_handle->src_fd, unpack_bz2_stream, "bunzip2"); archive_handle->offset = 0; while (get_header_tar(archive_handle) == EXIT_SUCCESS) continue; diff --git a/archival/libunarchive/get_header_tar_gz.c b/archival/libunarchive/get_header_tar_gz.c index 33c62729e..086c6df42 100644 --- a/archival/libunarchive/get_header_tar_gz.c +++ b/archival/libunarchive/get_header_tar_gz.c @@ -25,7 +25,7 @@ char FAST_FUNC get_header_tar_gz(archive_handle_t *archive_handle) } #endif - archive_handle->src_fd = open_transformer(archive_handle->src_fd, unpack_gz_stream, "gunzip"); + open_transformer(archive_handle->src_fd, unpack_gz_stream, "gunzip"); archive_handle->offset = 0; while (get_header_tar(archive_handle) == EXIT_SUCCESS) continue; diff --git a/archival/libunarchive/get_header_tar_lzma.c b/archival/libunarchive/get_header_tar_lzma.c index 730c1b1bb..03b1b792d 100644 --- a/archival/libunarchive/get_header_tar_lzma.c +++ b/archival/libunarchive/get_header_tar_lzma.c @@ -14,7 +14,7 @@ char FAST_FUNC get_header_tar_lzma(archive_handle_t *archive_handle) /* Can't lseek over pipes */ archive_handle->seek = seek_by_read; - archive_handle->src_fd = open_transformer(archive_handle->src_fd, unpack_lzma_stream, "unlzma"); + open_transformer(archive_handle->src_fd, unpack_lzma_stream, "unlzma"); archive_handle->offset = 0; while (get_header_tar(archive_handle) == EXIT_SUCCESS) continue; diff --git a/archival/libunarchive/open_transformer.c b/archival/libunarchive/open_transformer.c index a5ee97167..42fdd96a6 100644 --- a/archival/libunarchive/open_transformer.c +++ b/archival/libunarchive/open_transformer.c @@ -11,7 +11,7 @@ * On MMU machine, the transform_prog is removed by macro magic * in include/unarchive.h. On NOMMU, transformer is removed. */ -int FAST_FUNC open_transformer(int src_fd, +void FAST_FUNC open_transformer(int fd, USE_DESKTOP(long long) int FAST_FUNC (*transformer)(int src_fd, int dst_fd), const char *transform_prog) { @@ -32,20 +32,20 @@ int FAST_FUNC open_transformer(int src_fd, if (pid == 0) { /* child process */ - close(fd_pipe.rd); /* We don't want to read from the parent */ + close(fd_pipe.rd); /* we don't want to read from the parent */ // FIXME: error check? #if BB_MMU - transformer(src_fd, fd_pipe.wr); + transformer(fd, fd_pipe.wr); if (ENABLE_FEATURE_CLEAN_UP) { - close(fd_pipe.wr); /* Send EOF */ - close(src_fd); + close(fd_pipe.wr); /* send EOF */ + close(fd); } /* must be _exit! bug was actually seen here */ _exit(EXIT_SUCCESS); #else { char *argv[4]; - xmove_fd(src_fd, 0); + xmove_fd(fd, 0); xmove_fd(fd_pipe.wr, 1); argv[0] = (char*)transform_prog; argv[1] = (char*)"-cf"; @@ -59,9 +59,6 @@ int FAST_FUNC open_transformer(int src_fd, } /* parent process */ - close(fd_pipe.wr); /* Don't want to write to the child */ - -//TODO: get rid of return value (become void)? - xmove_fd(fd_pipe.rd, src_fd); - return src_fd; + close(fd_pipe.wr); /* don't want to write to the child */ + xmove_fd(fd_pipe.rd, fd); } diff --git a/archival/rpm.c b/archival/rpm.c index b3d7cd5f7..e6dd3d853 100644 --- a/archival/rpm.c +++ b/archival/rpm.c @@ -236,7 +236,7 @@ static void extract_cpio_gz(int fd) } xchdir("/"); /* Install RPM's to root */ - archive_handle->src_fd = open_transformer(archive_handle->src_fd, xformer, xformer_prog); + open_transformer(archive_handle->src_fd, xformer, xformer_prog); archive_handle->offset = 0; while (get_header_cpio(archive_handle) == EXIT_SUCCESS) continue; diff --git a/archival/tar.c b/archival/tar.c index 13cdbd930..a46442f8e 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -692,7 +692,7 @@ static char FAST_FUNC get_header_tar_Z(archive_handle_t *archive_handle) bb_error_msg_and_die("invalid magic"); } - archive_handle->src_fd = open_transformer(archive_handle->src_fd, uncompress, "uncompress"); + open_transformer(archive_handle->src_fd, uncompress, "uncompress"); archive_handle->offset = 0; while (get_header_tar(archive_handle) == EXIT_SUCCESS) continue; |