diff options
| author | Johnny Chen <johnny.chen@apple.com> | 2011-11-30 23:18:53 +0000 |
|---|---|---|
| committer | Johnny Chen <johnny.chen@apple.com> | 2011-11-30 23:18:53 +0000 |
| commit | 60e2c6aa433e6cbb3eb13377c9e8904209416267 (patch) | |
| tree | ba92799d76c9a3e52826d082642f860b423a7c62 /lldb/source/Expression/ClangASTSource.cpp | |
| parent | b9e53ed4e2f767ec86822e6923d2fc2bc1ea709a (diff) | |
| download | bcm5719-llvm-60e2c6aa433e6cbb3eb13377c9e8904209416267.tar.gz bcm5719-llvm-60e2c6aa433e6cbb3eb13377c9e8904209416267.zip | |
rdar://problem/10501020
ClangASTSource::~ClangASTSource() was calling
ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext();
which had the side effect of deleting this very ClangASTSource instance. Not good.
Change it to
// We are in the process of destruction, don't create clang ast context on demand
// by passing false to Target::GetScratchClangASTContext(create_on_demand).
ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext(false);
The Target::GetScratchClangASTContext(bool create_on_demand=true) has a new signature.
llvm-svn: 145537
Diffstat (limited to 'lldb/source/Expression/ClangASTSource.cpp')
| -rw-r--r-- | lldb/source/Expression/ClangASTSource.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Expression/ClangASTSource.cpp b/lldb/source/Expression/ClangASTSource.cpp index db08539b977..ca97fc19d34 100644 --- a/lldb/source/Expression/ClangASTSource.cpp +++ b/lldb/source/Expression/ClangASTSource.cpp @@ -27,7 +27,9 @@ ClangASTSource::~ClangASTSource() { m_ast_importer->ForgetDestination(m_ast_context); - ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext(); + // We are in the process of destruction, don't create clang ast context on demand + // by passing false to Target::GetScratchClangASTContext(create_on_demand). + ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext(false); if (!scratch_clang_ast_context) return; |

