Author: dblaikie Date: Wed Dec 9 11:23:13 2015 New Revision: 255129 URL: http://llvm.org/viewvc/llvm-project?rev=255129&view=rev Log: unique_ptrify some collections in FileManager
Modified: cfe/trunk/include/clang/Basic/FileManager.h cfe/trunk/lib/Basic/FileManager.cpp Modified: cfe/trunk/include/clang/Basic/FileManager.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/FileManager.h?rev=255129&r1=255128&r2=255129&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/FileManager.h (original) +++ cfe/trunk/include/clang/Basic/FileManager.h Wed Dec 9 11:23:13 2015 @@ -126,9 +126,9 @@ class FileManager : public RefCountedBas /// /// For each virtual file (e.g. foo/bar/baz.cpp), we add all of its parent /// directories (foo/ and foo/bar/) here. - SmallVector<DirectoryEntry*, 4> VirtualDirectoryEntries; + SmallVector<std::unique_ptr<DirectoryEntry>, 4> VirtualDirectoryEntries; /// \brief The virtual files that we have allocated. - SmallVector<FileEntry*, 4> VirtualFileEntries; + SmallVector<std::unique_ptr<FileEntry>, 4> VirtualFileEntries; /// \brief A cache that maps paths to directory entries (either real or /// virtual) we have looked up Modified: cfe/trunk/lib/Basic/FileManager.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/FileManager.cpp?rev=255129&r1=255128&r2=255129&view=diff ============================================================================== --- cfe/trunk/lib/Basic/FileManager.cpp (original) +++ cfe/trunk/lib/Basic/FileManager.cpp Wed Dec 9 11:23:13 2015 @@ -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 FileSyste 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<FileSystemStatCache> statCache, bool AtBeginning) { @@ -141,10 +137,10 @@ void FileManager::addAncestorsAsVirtualD return; // Add the virtual directory to the cache. - DirectoryEntry *UDE = new DirectoryEntry; + auto UDE = llvm::make_unique<DirectoryEntry>(); 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 Fi } if (!UFE) { - UFE = new FileEntry(); - VirtualFileEntries.push_back(UFE); + VirtualFileEntries.push_back(llvm::make_unique<FileEntry>()); + 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<FileEntry *>::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, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits