summaryrefslogtreecommitdiff
path: root/tools/llvm-ar/Archive.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-06-19 15:45:37 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-06-19 15:45:37 +0000
commit4d07abbb01b7bfc8e6e24ce07f2487803df50ea3 (patch)
treee2c87c02c38710dc98913172dc3daf7ae7709f5d /tools/llvm-ar/Archive.cpp
parent7c8397081c3d101fe467e8375601b091056465e0 (diff)
downloadllvm-4d07abbb01b7bfc8e6e24ce07f2487803df50ea3.tar.gz
llvm-4d07abbb01b7bfc8e6e24ce07f2487803df50ea3.tar.bz2
llvm-4d07abbb01b7bfc8e6e24ce07f2487803df50ea3.tar.xz
Reduce sys::Path usage in llvm-ar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184315 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-ar/Archive.cpp')
-rw-r--r--tools/llvm-ar/Archive.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/tools/llvm-ar/Archive.cpp b/tools/llvm-ar/Archive.cpp
index 3e9b9b2c25..9086d4e42e 100644
--- a/tools/llvm-ar/Archive.cpp
+++ b/tools/llvm-ar/Archive.cpp
@@ -33,7 +33,7 @@ ArchiveMember::getMemberSize() const {
// If it has a long filename, include the name length
if (hasLongFilename())
- result += path.str().length() + 1;
+ result += path.length() + 1;
// If its now odd lengthed, include the padding byte
if (result % 2 != 0 )
@@ -76,35 +76,35 @@ bool ArchiveMember::replaceWith(const sys::Path& newFile, std::string* ErrMsg) {
}
data = 0;
- path = newFile;
+ path = newFile.str();
// SVR4 symbol tables have an empty name
- if (path.str() == ARFILE_SVR4_SYMTAB_NAME)
+ if (path == ARFILE_SVR4_SYMTAB_NAME)
flags |= SVR4SymbolTableFlag;
else
flags &= ~SVR4SymbolTableFlag;
// BSD4.4 symbol tables have a special name
- if (path.str() == ARFILE_BSD4_SYMTAB_NAME)
+ if (path == ARFILE_BSD4_SYMTAB_NAME)
flags |= BSD4SymbolTableFlag;
else
flags &= ~BSD4SymbolTableFlag;
// String table name
- if (path.str() == ARFILE_STRTAB_NAME)
+ if (path == ARFILE_STRTAB_NAME)
flags |= StringTableFlag;
else
flags &= ~StringTableFlag;
// If it has a slash then it has a path
- bool hasSlash = path.str().find('/') != std::string::npos;
+ bool hasSlash = path.find('/') != std::string::npos;
if (hasSlash)
flags |= HasPathFlag;
else
flags &= ~HasPathFlag;
// If it has a slash or its over 15 chars then its a long filename format
- if (hasSlash || path.str().length() > 15)
+ if (hasSlash || path.length() > 15)
flags |= HasLongFilenameFlag;
else
flags &= ~HasLongFilenameFlag;
@@ -113,9 +113,10 @@ bool ArchiveMember::replaceWith(const sys::Path& newFile, std::string* ErrMsg) {
const char* signature = (const char*) data;
SmallString<4> magic;
if (!signature) {
- sys::fs::get_magic(path.str(), magic.capacity(), magic);
+ sys::fs::get_magic(path, magic.capacity(), magic);
signature = magic.c_str();
- const sys::FileStatus *FSinfo = path.getFileStatus(false, ErrMsg);
+ sys::PathWithStatus PWS(path);
+ const sys::FileStatus *FSinfo = PWS.getFileStatus(false, ErrMsg);
if (FSinfo)
info = *FSinfo;
else