diff options
author | Fangrui Song <maskray@google.com> | 2018-08-20 19:15:02 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2018-08-20 19:15:02 +0000 |
commit | 5c15d24300178368feee2ade45014adc43f54129 (patch) | |
tree | 5f986f04305344594607a97a6f825e69d18ce81f /include/clang/Lex | |
parent | fef69ae4fb285abd199cb26226d795b914477a64 (diff) |
[Lex] Make HeaderMaps a unique_ptr vector
Summary: unique_ptr makes the ownership clearer than a raw pointer container.
Reviewers: Eugene.Zelenko, dblaikie
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D50945
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@340198 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Lex')
-rw-r--r-- | include/clang/Lex/HeaderMap.h | 3 | ||||
-rw-r--r-- | include/clang/Lex/HeaderSearch.h | 8 |
2 files changed, 5 insertions, 6 deletions
diff --git a/include/clang/Lex/HeaderMap.h b/include/clang/Lex/HeaderMap.h index 58bf79579a..793e7edc27 100644 --- a/include/clang/Lex/HeaderMap.h +++ b/include/clang/Lex/HeaderMap.h @@ -71,7 +71,8 @@ class HeaderMap : private HeaderMapImpl { public: /// This attempts to load the specified file as a header map. If it doesn't /// look like a HeaderMap, it gives up and returns null. - static const HeaderMap *Create(const FileEntry *FE, FileManager &FM); + static std::unique_ptr<HeaderMap> Create(const FileEntry *FE, + FileManager &FM); /// Check to see if the specified relative filename is located in this /// HeaderMap. If so, open it and return its FileEntry. If RawPath is not diff --git a/include/clang/Lex/HeaderSearch.h b/include/clang/Lex/HeaderSearch.h index 8077fee226..7c69e219cb 100644 --- a/include/clang/Lex/HeaderSearch.h +++ b/include/clang/Lex/HeaderSearch.h @@ -17,6 +17,7 @@ #include "clang/Basic/SourceLocation.h" #include "clang/Basic/SourceManager.h" #include "clang/Lex/DirectoryLookup.h" +#include "clang/Lex/HeaderMap.h" #include "clang/Lex/ModuleMap.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" @@ -38,7 +39,6 @@ class DirectoryEntry; class ExternalPreprocessorSource; class FileEntry; class FileManager; -class HeaderMap; class HeaderSearchOptions; class IdentifierInfo; class LangOptions; @@ -226,9 +226,8 @@ class HeaderSearch { llvm::StringMap<std::string, llvm::BumpPtrAllocator>; std::unique_ptr<IncludeAliasMap> IncludeAliases; - /// This is a mapping from FileEntry -> HeaderMap, uniquing - /// headermaps. This vector owns the headermap. - std::vector<std::pair<const FileEntry *, const HeaderMap *>> HeaderMaps; + /// This is a mapping from FileEntry -> HeaderMap, uniquing headermaps. + std::vector<std::pair<const FileEntry *, std::unique_ptr<HeaderMap>>> HeaderMaps; /// The mapping between modules and headers. mutable ModuleMap ModMap; @@ -264,7 +263,6 @@ public: const LangOptions &LangOpts, const TargetInfo *Target); HeaderSearch(const HeaderSearch &) = delete; HeaderSearch &operator=(const HeaderSearch &) = delete; - ~HeaderSearch(); /// Retrieve the header-search options with which this header search /// was initialized. |