Use Child instead of child_iterator in the archive writer.
authorRafael Espindola <rafael.espindola@gmail.com>
Sun, 1 Nov 2015 00:10:37 +0000 (00:10 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sun, 1 Nov 2015 00:10:37 +0000 (00:10 +0000)
We never need to pass end(). This will also remove some complication
once we start adding error checking.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@251758 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/ArchiveWriter.h
lib/Object/ArchiveWriter.cpp
tools/llvm-ar/llvm-ar.cpp

index fc4669de1ba10591c9a4ad8ae45a5d3f426c9c35..b5d2ba3580809a3c6b5b816006105407659f8a7d 100644 (file)
@@ -24,15 +24,15 @@ class NewArchiveIterator {
   bool IsNewMember;
   StringRef Name;
 
   bool IsNewMember;
   StringRef Name;
 
-  object::Archive::child_iterator OldI;
+  object::Archive::Child OldMember;
 
 public:
 
 public:
-  NewArchiveIterator(object::Archive::child_iterator I, StringRef Name);
+  NewArchiveIterator(const object::Archive::Child &OldMember, StringRef Name);
   NewArchiveIterator(StringRef FileName);
   bool isNewMember() const;
   StringRef getName() const;
 
   NewArchiveIterator(StringRef FileName);
   bool isNewMember() const;
   StringRef getName() const;
 
-  object::Archive::child_iterator getOld() const;
+  const object::Archive::Child &getOld() const;
 
   StringRef getNew() const;
   llvm::ErrorOr<int> getFD(sys::fs::file_status &NewStatus) const;
 
   StringRef getNew() const;
   llvm::ErrorOr<int> getFD(sys::fs::file_status &NewStatus) const;
index dae0188a21e15b96baab7e7feee4588c02895026..f14cbc0d657d24a713e2271cdece7a8f4ae5a66c 100644 (file)
 
 using namespace llvm;
 
 
 using namespace llvm;
 
-NewArchiveIterator::NewArchiveIterator(object::Archive::child_iterator I,
+NewArchiveIterator::NewArchiveIterator(const object::Archive::Child &OldMember,
                                        StringRef Name)
                                        StringRef Name)
-    : IsNewMember(false), Name(Name), OldI(I) {}
+    : IsNewMember(false), Name(Name), OldMember(OldMember) {}
 
 NewArchiveIterator::NewArchiveIterator(StringRef FileName)
 
 NewArchiveIterator::NewArchiveIterator(StringRef FileName)
-    : IsNewMember(true), Name(FileName) {}
+    : IsNewMember(true), Name(FileName), OldMember(nullptr, nullptr) {}
 
 StringRef NewArchiveIterator::getName() const { return Name; }
 
 bool NewArchiveIterator::isNewMember() const { return IsNewMember; }
 
 
 StringRef NewArchiveIterator::getName() const { return Name; }
 
 bool NewArchiveIterator::isNewMember() const { return IsNewMember; }
 
-object::Archive::child_iterator NewArchiveIterator::getOld() const {
+const object::Archive::Child &NewArchiveIterator::getOld() const {
   assert(!IsNewMember);
   assert(!IsNewMember);
-  return OldI;
+  return OldMember;
 }
 
 StringRef NewArchiveIterator::getNew() const {
 }
 
 StringRef NewArchiveIterator::getNew() const {
index c8ff53b58b26456628c41d1d172c33fd092c4c24..b63856b9f7f7d3e93c2bf9dc5e420f0c9f8a308b 100644 (file)
@@ -446,11 +446,10 @@ void addMember(std::vector<NewArchiveIterator> &Members, StringRef FileName,
 }
 
 void addMember(std::vector<NewArchiveIterator> &Members,
 }
 
 void addMember(std::vector<NewArchiveIterator> &Members,
-               object::Archive::child_iterator I, StringRef Name,
-               int Pos = -1) {
-  if (Thin && !I->getParent()->isThin())
+               const object::Archive::Child &M, StringRef Name, int Pos = -1) {
+  if (Thin && !M.getParent()->isThin())
     fail("Cannot convert a regular archive to a thin one");
     fail("Cannot convert a regular archive to a thin one");
-  NewArchiveIterator NI(I, Name);
+  NewArchiveIterator NI(M, Name);
   if (Pos == -1)
     Members.push_back(NI);
   else
   if (Pos == -1)
     Members.push_back(NI);
   else