From: David Blaikie Date: Wed, 9 Dec 2015 17:23:13 +0000 (+0000) Subject: unique_ptrify some collections in FileManager X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=74c6bcd12821d8398499ab80c753777245019ba7;p=clang unique_ptrify some collections in FileManager git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@255129 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/FileManager.h b/include/clang/Basic/FileManager.h index cf74d4951d..17758ec3f3 100644 --- a/include/clang/Basic/FileManager.h +++ b/include/clang/Basic/FileManager.h @@ -126,9 +126,9 @@ class FileManager : public RefCountedBase { /// /// For each virtual file (e.g. foo/bar/baz.cpp), we add all of its parent /// directories (foo/ and foo/bar/) here. - SmallVector VirtualDirectoryEntries; + SmallVector, 4> VirtualDirectoryEntries; /// \brief The virtual files that we have allocated. - SmallVector VirtualFileEntries; + SmallVector, 4> VirtualFileEntries; /// \brief A cache that maps paths to directory entries (either real or /// virtual) we have looked up diff --git a/lib/Basic/FileManager.cpp b/lib/Basic/FileManager.cpp index e96c9e291d..cb3f75c25a 100644 --- a/lib/Basic/FileManager.cpp +++ b/lib/Basic/FileManager.cpp @@ -22,6 +22,7 @@ #include "clang/Frontend/PCHContainerOperations.h" #include "llvm/ADT/SmallString.h" #include "llvm/Config/llvm-config.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Path.h" @@ -58,12 +59,7 @@ FileManager::FileManager(const FileSystemOptions &FSO, this->FS = vfs::getRealFileSystem(); } -FileManager::~FileManager() { - for (FileEntry *FE : VirtualFileEntries) - delete FE; - for (DirectoryEntry *DE : VirtualDirectoryEntries) - delete DE; -} +FileManager::~FileManager() = default; void FileManager::addStatCache(std::unique_ptr statCache, bool AtBeginning) { @@ -141,10 +137,10 @@ void FileManager::addAncestorsAsVirtualDirs(StringRef Path) { return; // Add the virtual directory to the cache. - DirectoryEntry *UDE = new DirectoryEntry; + auto UDE = llvm::make_unique(); UDE->Name = NamedDirEnt.first().data(); - NamedDirEnt.second = UDE; - VirtualDirectoryEntries.push_back(UDE); + NamedDirEnt.second = UDE.get(); + VirtualDirectoryEntries.push_back(std::move(UDE)); // Recursively add the other ancestors. addAncestorsAsVirtualDirs(DirName); @@ -375,8 +371,8 @@ FileManager::getVirtualFile(StringRef Filename, off_t Size, } if (!UFE) { - UFE = new FileEntry(); - VirtualFileEntries.push_back(UFE); + VirtualFileEntries.push_back(llvm::make_unique()); + UFE = VirtualFileEntries.back().get(); NamedFileEnt.second = UFE; } @@ -513,11 +509,9 @@ void FileManager::GetUniqueIDMapping( UIDToFiles[FE->getValue()->getUID()] = FE->getValue(); // Map virtual file entries - for (SmallVectorImpl::const_iterator - VFE = VirtualFileEntries.begin(), VFEEnd = VirtualFileEntries.end(); - VFE != VFEEnd; ++VFE) - if (*VFE && *VFE != NON_EXISTENT_FILE) - UIDToFiles[(*VFE)->getUID()] = *VFE; + for (const auto &VFE : VirtualFileEntries) + if (VFE && VFE.get() != NON_EXISTENT_FILE) + UIDToFiles[VFE->getUID()] = VFE.get(); } void FileManager::modifyFileEntry(FileEntry *File,