diff options
author | Michael Vogt <mvo@debian.org> | 2014-02-23 00:45:56 +0100 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2014-02-23 00:45:56 +0100 |
commit | eccff323a093d91fff379e7c8460d7e5c8db8ad1 (patch) | |
tree | d539d21c6716af3122edabae91feadccfb3c12ad /apt-inst/contrib/extracttar.cc | |
parent | 2c678b0a026ac9d44c8ade07aa8bf318faf5a9e2 (diff) | |
parent | b7ed961b8099c05f65e18d4c73ead50cc5c8bff1 (diff) |
Merge branch 'debian/sid' into ubuntu/master
Conflicts:
debian/changelog
Diffstat (limited to 'apt-inst/contrib/extracttar.cc')
-rw-r--r-- | apt-inst/contrib/extracttar.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc index fb4db42f8..41301d1a6 100644 --- a/apt-inst/contrib/extracttar.cc +++ b/apt-inst/contrib/extracttar.cc @@ -6,7 +6,7 @@ Extract a Tar - Tar Extractor Some performance measurements showed that zlib performed quite poorly - in comparision to a forked gzip process. This tar extractor makes use + in comparison to a forked gzip process. This tar extractor makes use of the fact that dup'd file descriptors have the same seek pointer and that gzip will not read past the end of a compressed stream, even if there is more data. We use the dup property to track extraction @@ -111,6 +111,12 @@ bool ExtractTar::Done(bool Force) gzip will efficiently ignore the extra bits. */ bool ExtractTar::StartGzip() { + if (DecompressProg.empty()) + { + InFd.OpenDescriptor(File.Fd(), FileFd::ReadOnly, FileFd::None, false); + return true; + } + int Pipes[2]; if (pipe(Pipes) != 0) return _error->Errno("pipe",_("Failed to create pipes")); |