diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-08-04 11:27:08 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-08-04 11:27:08 +0000 |
commit | da4690ae1217a468096ce805619848a2e2842c68 (patch) | |
tree | c41de842c82b5847cdc9d5aa1f5db03f9c6358df /clang/lib/Basic/FileManager.cpp | |
parent | 54acd405916a5b939e85f876691995004447a7b9 (diff) | |
download | bcm5719-llvm-da4690ae1217a468096ce805619848a2e2842c68.tar.gz bcm5719-llvm-da4690ae1217a468096ce805619848a2e2842c68.zip |
[FileManager] Use StringRef::copy to store canonical paths.
No functional change intended.
llvm-svn: 243970
Diffstat (limited to 'clang/lib/Basic/FileManager.cpp')
-rw-r--r-- | clang/lib/Basic/FileManager.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/clang/lib/Basic/FileManager.cpp b/clang/lib/Basic/FileManager.cpp index 034ebc5c88b..21e6ea3ab4b 100644 --- a/clang/lib/Basic/FileManager.cpp +++ b/clang/lib/Basic/FileManager.cpp @@ -570,12 +570,8 @@ StringRef FileManager::getCanonicalName(const DirectoryEntry *Dir) { #ifdef LLVM_ON_UNIX char CanonicalNameBuf[PATH_MAX]; - if (realpath(Dir->getName(), CanonicalNameBuf)) { - unsigned Len = strlen(CanonicalNameBuf); - char *Mem = static_cast<char *>(CanonicalNameStorage.Allocate(Len, 1)); - memcpy(Mem, CanonicalNameBuf, Len); - CanonicalName = StringRef(Mem, Len); - } + if (realpath(Dir->getName(), CanonicalNameBuf)) + CanonicalName = StringRef(CanonicalNameBuf).copy(CanonicalNameStorage); #else SmallString<256> CanonicalNameBuf(CanonicalName); llvm::sys::fs::make_absolute(CanonicalNameBuf); @@ -587,9 +583,7 @@ StringRef FileManager::getCanonicalName(const DirectoryEntry *Dir) { // Ideally we'd have an equivalent of `realpath` and could implement // sys::fs::canonical across all the platforms. removeDotPaths(CanonicalNameBuf, /*RemoveDotDot*/true); - char *Mem = CanonicalNameStorage.Allocate<char>(CanonicalNameBuf.size()); - memcpy(Mem, CanonicalNameBuf.data(), CanonicalNameBuf.size()); - CanonicalName = StringRef(Mem, CanonicalNameBuf.size()); + CanonicalName = StringRef(CanonicalNameBuf).copy(CanonicalNameStorage); #endif CanonicalDirNames.insert(std::make_pair(Dir, CanonicalName)); |