Author: mehdi_amini Date: Tue Oct 11 02:31:29 2016 New Revision: 283856 URL: http://llvm.org/viewvc/llvm-project?rev=283856&view=rev Log: Turn FileManager DirectoryEntry::Name from raw pointer to StringRef (NFC)
Modified: cfe/trunk/include/clang/Basic/FileManager.h cfe/trunk/include/clang/Basic/FileSystemStatCache.h cfe/trunk/lib/Basic/FileManager.cpp cfe/trunk/lib/Basic/FileSystemStatCache.cpp cfe/trunk/lib/Frontend/CacheTokens.cpp cfe/trunk/lib/Lex/HeaderSearch.cpp cfe/trunk/lib/Lex/PTHLexer.cpp cfe/trunk/unittests/Basic/FileManagerTest.cpp Modified: cfe/trunk/include/clang/Basic/FileManager.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/FileManager.h?rev=283856&r1=283855&r2=283856&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/FileManager.h (original) +++ cfe/trunk/include/clang/Basic/FileManager.h Tue Oct 11 02:31:29 2016 @@ -38,11 +38,10 @@ class FileSystemStatCache; /// \brief Cached information about one directory (either on disk or in /// the virtual file system). class DirectoryEntry { - const char *Name; // Name of the directory. + StringRef Name; // Name of the directory. friend class FileManager; public: - DirectoryEntry() : Name(nullptr) {} - const char *getName() const { return Name; } + StringRef getName() const { return Name; } }; /// \brief Cached information about one file (either on disk @@ -165,7 +164,7 @@ class FileManager : public RefCountedBas // Caching. std::unique_ptr<FileSystemStatCache> StatCache; - bool getStatValue(const char *Path, FileData &Data, bool isFile, + bool getStatValue(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F); /// Add all ancestors of the given path (pointing to either a file Modified: cfe/trunk/include/clang/Basic/FileSystemStatCache.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/FileSystemStatCache.h?rev=283856&r1=283855&r2=283856&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/FileSystemStatCache.h (original) +++ cfe/trunk/include/clang/Basic/FileSystemStatCache.h Tue Oct 11 02:31:29 2016 @@ -68,7 +68,7 @@ public: /// success for directories (not files). On a successful file lookup, the /// implementation can optionally fill in \p F with a valid \p File object and /// the client guarantees that it will close it. - static bool get(const char *Path, FileData &Data, bool isFile, + static bool get(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, FileSystemStatCache *Cache, vfs::FileSystem &FS); @@ -92,11 +92,11 @@ protected: // FIXME: The pointer here is a non-owning/optional reference to the // unique_ptr. Optional<unique_ptr<vfs::File>&> might be nicer, but // Optional needs some work to support references so this isn't possible yet. - virtual LookupResult getStat(const char *Path, FileData &Data, bool isFile, + virtual LookupResult getStat(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, vfs::FileSystem &FS) = 0; - LookupResult statChained(const char *Path, FileData &Data, bool isFile, + LookupResult statChained(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, vfs::FileSystem &FS) { if (FileSystemStatCache *Next = getNextStatCache()) return Next->getStat(Path, Data, isFile, F, FS); @@ -121,7 +121,7 @@ public: iterator begin() const { return StatCalls.begin(); } iterator end() const { return StatCalls.end(); } - LookupResult getStat(const char *Path, FileData &Data, bool isFile, + LookupResult getStat(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, vfs::FileSystem &FS) override; }; Modified: cfe/trunk/lib/Basic/FileManager.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/FileManager.cpp?rev=283856&r1=283855&r2=283856&view=diff ============================================================================== --- cfe/trunk/lib/Basic/FileManager.cpp (original) +++ cfe/trunk/lib/Basic/FileManager.cpp Tue Oct 11 02:31:29 2016 @@ -140,7 +140,7 @@ void FileManager::addAncestorsAsVirtualD // Add the virtual directory to the cache. auto UDE = llvm::make_unique<DirectoryEntry>(); - UDE->Name = NamedDirEnt.first().data(); + UDE->Name = NamedDirEnt.first(); NamedDirEnt.second = UDE.get(); VirtualDirectoryEntries.push_back(std::move(UDE)); @@ -185,7 +185,7 @@ const DirectoryEntry *FileManager::getDi // Get the null-terminated directory name as stored as the key of the // SeenDirEntries map. - const char *InterndDirName = NamedDirEnt.first().data(); + StringRef InterndDirName = NamedDirEnt.first(); // Check to see if the directory exists. FileData Data; @@ -203,7 +203,7 @@ const DirectoryEntry *FileManager::getDi DirectoryEntry &UDE = UniqueRealDirs[Data.UniqueID]; NamedDirEnt.second = &UDE; - if (!UDE.getName()) { + if (UDE.getName().empty()) { // We don't have this directory yet, add it. We use the string // key from the SeenDirEntries map as the string. UDE.Name = InterndDirName; @@ -232,7 +232,7 @@ const FileEntry *FileManager::getFile(St // Get the null-terminated file name as stored as the key of the // SeenFileEntries map. - const char *InterndFileName = NamedFileEnt.first().data(); + StringRef InterndFileName = NamedFileEnt.first(); // Look up the directory for the file. When looking up something like // sys/foo.h we'll discover all of the search directories that have a 'sys' @@ -463,7 +463,7 @@ FileManager::getBufferForFile(StringRef /// if the path points to a virtual file or does not exist, or returns /// false if it's an existent real file. If FileDescriptor is NULL, /// do directory look-up instead of file look-up. -bool FileManager::getStatValue(const char *Path, FileData &Data, bool isFile, +bool FileManager::getStatValue(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F) { // FIXME: FileSystemOpts shouldn't be passed in here, all paths should be // absolute! @@ -535,7 +535,7 @@ StringRef FileManager::getCanonicalName( #ifdef LLVM_ON_UNIX char CanonicalNameBuf[PATH_MAX]; - if (realpath(Dir->getName(), CanonicalNameBuf)) + if (realpath(Dir->getName().str().c_str(), CanonicalNameBuf)) CanonicalName = StringRef(CanonicalNameBuf).copy(CanonicalNameStorage); #else SmallString<256> CanonicalNameBuf(CanonicalName); Modified: cfe/trunk/lib/Basic/FileSystemStatCache.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/FileSystemStatCache.cpp?rev=283856&r1=283855&r2=283856&view=diff ============================================================================== --- cfe/trunk/lib/Basic/FileSystemStatCache.cpp (original) +++ cfe/trunk/lib/Basic/FileSystemStatCache.cpp Tue Oct 11 02:31:29 2016 @@ -40,7 +40,7 @@ static void copyStatusToFileData(const v /// success for directories (not files). On a successful file lookup, the /// implementation can optionally fill in FileDescriptor with a valid /// descriptor and the client guarantees that it will close it. -bool FileSystemStatCache::get(const char *Path, FileData &Data, bool isFile, +bool FileSystemStatCache::get(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, FileSystemStatCache *Cache, vfs::FileSystem &FS) { LookupResult R; @@ -107,7 +107,7 @@ bool FileSystemStatCache::get(const char } MemorizeStatCalls::LookupResult -MemorizeStatCalls::getStat(const char *Path, FileData &Data, bool isFile, +MemorizeStatCalls::getStat(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, vfs::FileSystem &FS) { LookupResult Result = statChained(Path, Data, isFile, F, FS); Modified: cfe/trunk/lib/Frontend/CacheTokens.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CacheTokens.cpp?rev=283856&r1=283855&r2=283856&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/CacheTokens.cpp (original) +++ cfe/trunk/lib/Frontend/CacheTokens.cpp Tue Oct 11 02:31:29 2016 @@ -58,18 +58,21 @@ public: class PTHEntryKeyVariant { - union { const FileEntry* FE; const char* Path; }; + union { + const FileEntry *FE; + StringRef Path; + }; enum { IsFE = 0x1, IsDE = 0x2, IsNoExist = 0x0 } Kind; FileData *Data; public: PTHEntryKeyVariant(const FileEntry *fe) : FE(fe), Kind(IsFE), Data(nullptr) {} - PTHEntryKeyVariant(FileData *Data, const char *path) - : Path(path), Kind(IsDE), Data(new FileData(*Data)) {} + PTHEntryKeyVariant(FileData *Data, StringRef Path) + : Path(Path), Kind(IsDE), Data(new FileData(*Data)) {} - explicit PTHEntryKeyVariant(const char *path) - : Path(path), Kind(IsNoExist), Data(nullptr) {} + explicit PTHEntryKeyVariant(StringRef Path) + : Path(Path), Kind(IsNoExist), Data(nullptr) {} bool isFile() const { return Kind == IsFE; } @@ -549,7 +552,7 @@ public: StatListener(PTHMap &pm) : PM(pm) {} ~StatListener() override {} - LookupResult getStat(const char *Path, FileData &Data, bool isFile, + LookupResult getStat(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, vfs::FileSystem &FS) override { LookupResult Result = statChained(Path, Data, isFile, F, FS); Modified: cfe/trunk/lib/Lex/HeaderSearch.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/HeaderSearch.cpp?rev=283856&r1=283855&r2=283856&view=diff ============================================================================== --- cfe/trunk/lib/Lex/HeaderSearch.cpp (original) +++ cfe/trunk/lib/Lex/HeaderSearch.cpp Tue Oct 11 02:31:29 2016 @@ -1461,7 +1461,7 @@ std::string HeaderSearch::suggestPathToF if (!SearchDirs[I].isNormalDir()) continue; - const char *Dir = SearchDirs[I].getDir()->getName(); + StringRef Dir = SearchDirs[I].getDir()->getName(); for (auto NI = llvm::sys::path::begin(Name), NE = llvm::sys::path::end(Name), DI = llvm::sys::path::begin(Dir), Modified: cfe/trunk/lib/Lex/PTHLexer.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PTHLexer.cpp?rev=283856&r1=283855&r2=283856&view=diff ============================================================================== --- cfe/trunk/lib/Lex/PTHLexer.cpp (original) +++ cfe/trunk/lib/Lex/PTHLexer.cpp Tue Oct 11 02:31:29 2016 @@ -644,10 +644,10 @@ public: class PTHStatLookupTrait : public PTHFileLookupCommonTrait { public: - typedef const char* external_key_type; // const char* + typedef StringRef external_key_type; // const char* typedef PTHStatData data_type; - static internal_key_type GetInternalKey(const char *path) { + static internal_key_type GetInternalKey(StringRef path) { // The key 'kind' doesn't matter here because it is ignored in EqualKey. return std::make_pair((unsigned char) 0x0, path); } @@ -694,7 +694,7 @@ public: : Cache(FL.getNumBuckets(), FL.getNumEntries(), FL.getBuckets(), FL.getBase()) {} - LookupResult getStat(const char *Path, FileData &Data, bool isFile, + LookupResult getStat(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, vfs::FileSystem &FS) override { // Do the lookup for the file's data in the PTH file. Modified: cfe/trunk/unittests/Basic/FileManagerTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/FileManagerTest.cpp?rev=283856&r1=283855&r2=283856&view=diff ============================================================================== --- cfe/trunk/unittests/Basic/FileManagerTest.cpp (original) +++ cfe/trunk/unittests/Basic/FileManagerTest.cpp Tue Oct 11 02:31:29 2016 @@ -52,7 +52,7 @@ public: } // Implement FileSystemStatCache::getStat(). - LookupResult getStat(const char *Path, FileData &Data, bool isFile, + LookupResult getStat(StringRef Path, FileData &Data, bool isFile, std::unique_ptr<vfs::File> *F, vfs::FileSystem &FS) override { if (StatCalls.count(Path) != 0) { @@ -82,14 +82,14 @@ TEST_F(FileManagerTest, getVirtualFileSe const DirectoryEntry *dir = file->getDir(); ASSERT_TRUE(dir != nullptr); - EXPECT_STREQ(".", dir->getName()); + EXPECT_EQ(".", dir->getName()); file = manager.getVirtualFile("x/y/z.cpp", 42, 0); ASSERT_TRUE(file != nullptr); dir = file->getDir(); ASSERT_TRUE(dir != nullptr); - EXPECT_STREQ("x/y", dir->getName()); + EXPECT_EQ("x/y", dir->getName()); } // Before any virtual file is added, no virtual directory exists. @@ -115,11 +115,11 @@ TEST_F(FileManagerTest, getVirtualFileCr const DirectoryEntry *dir = manager.getDirectory("virtual/dir"); ASSERT_TRUE(dir != nullptr); - EXPECT_STREQ("virtual/dir", dir->getName()); + EXPECT_EQ("virtual/dir", dir->getName()); dir = manager.getDirectory("virtual"); ASSERT_TRUE(dir != nullptr); - EXPECT_STREQ("virtual", dir->getName()); + EXPECT_EQ("virtual", dir->getName()); } // getFile() returns non-NULL if a real file exists at the given path. @@ -144,7 +144,7 @@ TEST_F(FileManagerTest, getFileReturnsVa const DirectoryEntry *dir = file->getDir(); ASSERT_TRUE(dir != nullptr); - EXPECT_STREQ("/tmp", dir->getName()); + EXPECT_EQ("/tmp", dir->getName()); #ifdef LLVM_ON_WIN32 file = manager.getFile(FileName); @@ -152,7 +152,7 @@ TEST_F(FileManagerTest, getFileReturnsVa dir = file->getDir(); ASSERT_TRUE(dir != NULL); - EXPECT_STREQ(DirName, dir->getName()); + EXPECT_EQ(DirName, dir->getName()); #endif } @@ -168,7 +168,7 @@ TEST_F(FileManagerTest, getFileReturnsVa const DirectoryEntry *dir = file->getDir(); ASSERT_TRUE(dir != nullptr); - EXPECT_STREQ("virtual/dir", dir->getName()); + EXPECT_EQ("virtual/dir", dir->getName()); } // getFile() returns different FileEntries for different paths when _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits