diff options
| author | Jonas Devlieghere <jonas@devlieghere.com> | 2019-07-29 20:54:02 +0000 |
|---|---|---|
| committer | Jonas Devlieghere <jonas@devlieghere.com> | 2019-07-29 20:54:02 +0000 |
| commit | 96b44c77f8fbc0c704c036b82ea173289b93aa72 (patch) | |
| tree | 125d898c77d1f4f835c7982b4110aa5d7749462e /lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h | |
| parent | d01ae675af8eed545e910e6967cd49593a651a23 (diff) | |
| download | bcm5719-llvm-96b44c77f8fbc0c704c036b82ea173289b93aa72.tar.gz bcm5719-llvm-96b44c77f8fbc0c704c036b82ea173289b93aa72.zip | |
[Reproducers] Pass FileCollector around as a shared_ptr (NFC)
Instead of passing the FileCollector around as a reference or raw
pointer, use a shared_ptr. This change's motivation is twofold. First it
adds compatibility for the newly added `FileCollectorFileSystem`.
Secondly, it addresses a lifetime issue we only see when LLDB is used
from Xcode, where a reference to the FileCollector outlives the
reproducer instance.
llvm-svn: 367258
Diffstat (limited to 'lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h')
| -rw-r--r-- | lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h b/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h index 9660abf1bfa..7553860f249 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h +++ b/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h @@ -17,13 +17,15 @@ namespace lldb_private { class ModuleDependencyCollectorAdaptor : public clang::ModuleDependencyCollector { public: - ModuleDependencyCollectorAdaptor(llvm::FileCollector &file_collector) + ModuleDependencyCollectorAdaptor( + std::shared_ptr<llvm::FileCollector> file_collector) : clang::ModuleDependencyCollector(""), m_file_collector(file_collector) { } void addFile(llvm::StringRef Filename, llvm::StringRef FileDst = {}) override { - m_file_collector.addFile(Filename); + if (m_file_collector) + m_file_collector->addFile(Filename); } bool insertSeen(llvm::StringRef Filename) override { return false; } @@ -31,7 +33,7 @@ public: void writeFileMap() override {} private: - llvm::FileCollector &m_file_collector; + std::shared_ptr<llvm::FileCollector> m_file_collector; }; } // namespace lldb_private |

