summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/FileManager.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2015-08-04 11:27:08 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2015-08-04 11:27:08 +0000
commitda4690ae1217a468096ce805619848a2e2842c68 (patch)
treec41de842c82b5847cdc9d5aa1f5db03f9c6358df /clang/lib/Basic/FileManager.cpp
parent54acd405916a5b939e85f876691995004447a7b9 (diff)
downloadbcm5719-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.cpp12
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));
OpenPOWER on IntegriCloud