From 8c1ee47fb036645c91744626505573786d16fece Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Tue, 16 Jul 2013 03:30:10 +0000 Subject: [PATCH] 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 --- llvm/tools/llvm-ar/llvm-ar.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp index 7632b00f9168..e082687643db 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::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 @@ -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); -- 2.34.1