diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2011-12-19 14:07:51 +0100 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2011-12-19 14:07:51 +0100 |
commit | 27da8141d21cfbfc29675510737ee05bdfd4a2b1 (patch) | |
tree | 008e311e4c24dbfce3f47643d962cfa67a333a68 /ftparchive/writer.cc | |
parent | 386566e36bedb453eb6f914e8e14fd555a2bf111 (diff) | |
parent | 6fd947bd48449652edf783cfb1362391e63f9be1 (diff) |
merged from lp:~donkult/apt/experimental
Diffstat (limited to 'ftparchive/writer.cc')
-rw-r--r-- | ftparchive/writer.cc | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 27e53faf8..02777713c 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -889,22 +889,16 @@ bool ContentsWriter::ReadFromPkgs(string const &PkgFile,string const &PkgCompres MultiCompress Pkgs(PkgFile,PkgCompress,0,false); if (_error->PendingError() == true) return false; - + // Open the package file - int CompFd = -1; - pid_t Proc = -1; - if (Pkgs.OpenOld(CompFd,Proc) == false) + FileFd Fd; + if (Pkgs.OpenOld(Fd) == false) return false; - - // No auto-close FD - FileFd Fd(CompFd,false); + pkgTagFile Tags(&Fd); if (_error->PendingError() == true) - { - Pkgs.CloseOld(CompFd,Proc); return false; - } - + // Parse. pkgTagSection Section; while (Tags.Step(Section) == true) @@ -926,11 +920,10 @@ bool ContentsWriter::ReadFromPkgs(string const &PkgFile,string const &PkgCompres _error->DumpErrors(); } } - + // Tidy the compressor - if (Pkgs.CloseOld(CompFd,Proc) == false) - return false; - + Fd.Close(); + return true; } |