summaryrefslogtreecommitdiffstats
path: root/lldb
diff options
context:
space:
mode:
Diffstat (limited to 'lldb')
-rw-r--r--lldb/include/lldb/Symbol/ClangASTContext.h2
-rw-r--r--lldb/source/Symbol/ClangASTContext.cpp17
2 files changed, 10 insertions, 9 deletions
diff --git a/lldb/include/lldb/Symbol/ClangASTContext.h b/lldb/include/lldb/Symbol/ClangASTContext.h
index 9f2c038563d..a7d15c1c095 100644
--- a/lldb/include/lldb/Symbol/ClangASTContext.h
+++ b/lldb/include/lldb/Symbol/ClangASTContext.h
@@ -977,7 +977,7 @@ protected:
std::auto_ptr<clang::SourceManager> m_source_manager_ap;
std::auto_ptr<clang::DiagnosticsEngine> m_diagnostics_engine_ap;
std::auto_ptr<clang::DiagnosticConsumer> m_diagnostic_consumer_ap;
- std::auto_ptr<clang::TargetOptions> m_target_options_ap;
+ llvm::IntrusiveRefCntPtr<clang::TargetOptions> m_target_options_rp;
std::auto_ptr<clang::TargetInfo> m_target_info_ap;
std::auto_ptr<clang::IdentifierTable> m_identifier_table_ap;
std::auto_ptr<clang::SelectorTable> m_selector_table_ap;
diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp
index 70f4af17749..6a77c3fc729 100644
--- a/lldb/source/Symbol/ClangASTContext.cpp
+++ b/lldb/source/Symbol/ClangASTContext.cpp
@@ -379,7 +379,7 @@ ClangASTContext::ClangASTContext (const char *target_triple) :
m_language_options_ap(),
m_source_manager_ap(),
m_diagnostics_engine_ap(),
- m_target_options_ap(),
+ m_target_options_rp(),
m_target_info_ap(),
m_identifier_table_ap(),
m_selector_table_ap(),
@@ -402,7 +402,7 @@ ClangASTContext::~ClangASTContext()
m_selector_table_ap.reset();
m_identifier_table_ap.reset();
m_target_info_ap.reset();
- m_target_options_ap.reset();
+ m_target_options_rp.reset();
m_diagnostics_engine_ap.reset();
m_source_manager_ap.reset();
m_language_options_ap.reset();
@@ -417,7 +417,7 @@ ClangASTContext::Clear()
m_language_options_ap.reset();
m_source_manager_ap.reset();
m_diagnostics_engine_ap.reset();
- m_target_options_ap.reset();
+ m_target_options_rp.reset();
m_target_info_ap.reset();
m_identifier_table_ap.reset();
m_selector_table_ap.reset();
@@ -609,13 +609,14 @@ ClangASTContext::getDiagnosticConsumer()
TargetOptions *
ClangASTContext::getTargetOptions()
{
- if (m_target_options_ap.get() == NULL && !m_target_triple.empty())
+ if (m_target_options_rp.getPtr() == NULL && !m_target_triple.empty())
{
- m_target_options_ap.reset (new TargetOptions());
- if (m_target_options_ap.get())
- m_target_options_ap->Triple = m_target_triple;
+ m_target_options_rp.reset ();
+ m_target_options_rp = new TargetOptions();
+ if (m_target_options_rp.getPtr() != NULL)
+ m_target_options_rp->Triple = m_target_triple;
}
- return m_target_options_ap.get();
+ return m_target_options_rp.getPtr();
}
OpenPOWER on IntegriCloud