diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-15 22:46:53 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-15 22:46:53 +0000 |
commit | 0a74a60bc4a16e7c74c614642fa8c63d99a2772c (patch) | |
tree | 87c5c9be23af1ea533315a84238fdd36657a8ffd | |
parent | e2d03448ba7944e8f983ddd95d50a20e9433777c (diff) | |
download | llvm-0a74a60bc4a16e7c74c614642fa8c63d99a2772c.zip llvm-0a74a60bc4a16e7c74c614642fa8c63d99a2772c.tar.gz llvm-0a74a60bc4a16e7c74c614642fa8c63d99a2772c.tar.bz2 |
For new archive member we only need to store the full path.
We were storing both the path and the file name, which was redundant
and easy to get confused up with.
llvm-svn: 242347
-rw-r--r-- | llvm/include/llvm/Object/ArchiveWriter.h | 4 | ||||
-rw-r--r-- | llvm/lib/LibDriver/LibDriver.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Object/ArchiveWriter.cpp | 8 | ||||
-rw-r--r-- | llvm/tools/llvm-ar/llvm-ar.cpp | 16 |
4 files changed, 13 insertions, 18 deletions
diff --git a/llvm/include/llvm/Object/ArchiveWriter.h b/llvm/include/llvm/Object/ArchiveWriter.h index 9d1dd61..fc4669d 100644 --- a/llvm/include/llvm/Object/ArchiveWriter.h +++ b/llvm/include/llvm/Object/ArchiveWriter.h @@ -26,11 +26,9 @@ class NewArchiveIterator { object::Archive::child_iterator OldI; - StringRef NewFilename; - public: NewArchiveIterator(object::Archive::child_iterator I, StringRef Name); - NewArchiveIterator(StringRef I, StringRef Name); + NewArchiveIterator(StringRef FileName); bool isNewMember() const; StringRef getName() const; diff --git a/llvm/lib/LibDriver/LibDriver.cpp b/llvm/lib/LibDriver/LibDriver.cpp index 98148750..17680e3 100644 --- a/llvm/lib/LibDriver/LibDriver.cpp +++ b/llvm/lib/LibDriver/LibDriver.cpp @@ -135,8 +135,7 @@ int llvm::libDriverMain(llvm::ArrayRef<const char*> ArgsArr) { llvm::errs() << Arg->getValue() << ": no such file or directory\n"; return 1; } - Members.emplace_back(Saver.save(*Path), - llvm::sys::path::filename(Arg->getValue())); + Members.emplace_back(Saver.save(*Path)); } std::pair<StringRef, std::error_code> Result = diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp index b555b8c..2aa4813 100644 --- a/llvm/lib/Object/ArchiveWriter.cpp +++ b/llvm/lib/Object/ArchiveWriter.cpp @@ -38,8 +38,8 @@ NewArchiveIterator::NewArchiveIterator(object::Archive::child_iterator I, StringRef Name) : IsNewMember(false), Name(Name), OldI(I) {} -NewArchiveIterator::NewArchiveIterator(StringRef NewFilename, StringRef Name) - : IsNewMember(true), Name(Name), NewFilename(NewFilename) {} +NewArchiveIterator::NewArchiveIterator(StringRef FileName) + : IsNewMember(true), Name(FileName) {} StringRef NewArchiveIterator::getName() const { return Name; } @@ -52,14 +52,14 @@ object::Archive::child_iterator NewArchiveIterator::getOld() const { StringRef NewArchiveIterator::getNew() const { assert(IsNewMember); - return NewFilename; + return Name; } llvm::ErrorOr<int> NewArchiveIterator::getFD(sys::fs::file_status &NewStatus) const { assert(IsNewMember); int NewFD; - if (auto EC = sys::fs::openFileForRead(NewFilename, NewFD)) + if (auto EC = sys::fs::openFileForRead(Name, NewFD)) return EC; assert(NewFD != -1); diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp index 92f272d..ec3cfcb 100644 --- a/llvm/tools/llvm-ar/llvm-ar.cpp +++ b/llvm/tools/llvm-ar/llvm-ar.cpp @@ -437,8 +437,8 @@ static void performReadOperation(ArchiveOperation Operation, } void addMember(std::vector<NewArchiveIterator> &Members, StringRef FileName, - StringRef Name, int Pos = -1) { - NewArchiveIterator NI(FileName, Name); + int Pos = -1) { + NewArchiveIterator NI(FileName); if (Pos == -1) Members.push_back(NI); else @@ -544,7 +544,7 @@ computeNewArchiveMembers(ArchiveOperation Operation, addMember(Ret, Child, Name); break; case IA_AddNewMeber: - addMember(Ret, *MemberI, Name); + addMember(Ret, *MemberI); break; case IA_Delete: break; @@ -552,7 +552,7 @@ computeNewArchiveMembers(ArchiveOperation Operation, addMember(Moved, Child, Name); break; case IA_MoveNewMember: - addMember(Moved, *MemberI, Name); + addMember(Moved, *MemberI); break; } if (MemberI != Members.end()) @@ -572,12 +572,10 @@ computeNewArchiveMembers(ArchiveOperation Operation, assert(unsigned(InsertPos) <= Ret.size()); Ret.insert(Ret.begin() + InsertPos, Moved.begin(), Moved.end()); - Ret.insert(Ret.begin() + InsertPos, Members.size(), - NewArchiveIterator("", "")); + Ret.insert(Ret.begin() + InsertPos, Members.size(), NewArchiveIterator("")); int Pos = InsertPos; for (auto &Member : Members) { - StringRef Name = sys::path::filename(Member); - addMember(Ret, Member, Name, Pos); + addMember(Ret, Member, Pos); ++Pos; } @@ -736,7 +734,7 @@ static void runMRIScript() { break; } case MRICommand::AddMod: - addMember(NewMembers, Rest, sys::path::filename(Rest)); + addMember(NewMembers, Rest); break; case MRICommand::Create: Create = true; |