summaryrefslogtreecommitdiff
path: root/ftparchive/writer.cc
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2011-12-19 14:42:48 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2011-12-19 14:42:48 +0100
commit616e09efe980457a0a4a3b643903a2a31708439e (patch)
treec656f4f9ee926733e7bb1db90d7537a0b137e08e /ftparchive/writer.cc
parent384a3a5c5a233e28923d642baf92d15071705635 (diff)
parent27da8141d21cfbfc29675510737ee05bdfd4a2b1 (diff)
merged from debian-experimental2
Diffstat (limited to 'ftparchive/writer.cc')
-rw-r--r--ftparchive/writer.cc23
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;
}