diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-16 03:30:10 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-16 03:30:10 +0000 |
commit | 289e241d775565b450286a682d7e8a1a1b625f61 (patch) | |
tree | e640b83af0c6f532f9fd7f98ec2e14e5c7a2ea74 | |
parent | 20a91bfd362bf119a1bbaf27d19518328c5e3e90 (diff) | |
download | external_llvm-289e241d775565b450286a682d7e8a1a1b625f61.zip external_llvm-289e241d775565b450286a682d7e8a1a1b625f61.tar.gz external_llvm-289e241d775565b450286a682d7e8a1a1b625f61.tar.bz2 |
Remember that we have a null terminated string.
This is a micro optimization. Instead of going char*->StringRef->Twine->char*,
go char*->Twine->char* and avoid having to copy the filename on the stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186380 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/llvm-ar/llvm-ar.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index 7632b00..e082687 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -387,7 +387,7 @@ public: NewArchiveIterator(std::vector<std::string>::const_iterator I, Twine Name); bool isNewMember() const; object::Archive::child_iterator getOld() const; - StringRef getNew() const; + const char *getNew() const; StringRef getMemberName() const { return MemberName; } }; } @@ -411,9 +411,9 @@ object::Archive::child_iterator NewArchiveIterator::getOld() const { return OldI; } -StringRef NewArchiveIterator::getNew() const { +const char *NewArchiveIterator::getNew() const { assert(IsNewMember); - return *NewI; + return NewI->c_str(); } template <typename T> @@ -556,7 +556,7 @@ static void performWriteOperation(ArchiveOperation Operation, if (I->isNewMember()) { // FIXME: we do a stat + open. We should do a open + fstat. - StringRef FileName = I->getNew(); + const char *FileName = I->getNew(); sys::fs::file_status Status; failIfError(sys::fs::status(FileName, Status), FileName); |