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 | 8c1ee47fb036645c91744626505573786d16fece (patch) | |
tree | 38d1fdd2da3aa382c64587a92c6106c629f1c678 | |
parent | 2c633e40eeeb4e8c0e7a32c4e2a402202154cba0 (diff) | |
download | bcm5719-llvm-8c1ee47fb036645c91744626505573786d16fece.tar.gz bcm5719-llvm-8c1ee47fb036645c91744626505573786d16fece.zip |
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.
llvm-svn: 186380
-rw-r--r-- | llvm/tools/llvm-ar/llvm-ar.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp index 7632b00f916..e082687643d 100644 --- a/llvm/tools/llvm-ar/llvm-ar.cpp +++ b/llvm/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); |