We do not own our ExternalSemaSource, it is ref-owned by Sema and ASTContext.

This commit is contained in:
Vassil Vassilev 2014-10-01 12:30:38 +02:00 committed by sftnight
parent 5563ab3d68
commit 8162fdd340
2 changed files with 5 additions and 5 deletions

View File

@ -51,9 +51,9 @@ namespace cling {
Interpreter* m_Interpreter; // we don't own
///\brief Our custom SemaExternalSource, translating interesting events into
/// callbacks.
/// callbacks. RefOwned by Sema & ASTContext.
///
std::unique_ptr<InterpreterExternalSemaSource> m_ExternalSemaSource;
InterpreterExternalSemaSource* m_ExternalSemaSource;
///\brief Our custom ASTDeserializationListener, translating interesting
/// events into callbacks.

View File

@ -167,9 +167,9 @@ namespace cling {
if (!externalSemaSrc || externalSemaSrc == Reader) {
// If the ExternalSemaSource is the PCH reader we still need to insert
// our listener.
m_ExternalSemaSource.reset(new InterpreterExternalSemaSource(this));
m_ExternalSemaSource = new InterpreterExternalSemaSource(this);
m_ExternalSemaSource->InitializeSema(SemaRef);
m_Interpreter->getSema().addExternalSource(m_ExternalSemaSource.get());
m_Interpreter->getSema().addExternalSource(m_ExternalSemaSource);
// FIXME: We should add a multiplexer in the ASTContext, too.
llvm::IntrusiveRefCntPtr<ExternalASTSource>
@ -209,7 +209,7 @@ namespace cling {
ExternalSemaSource*
InterpreterCallbacks::getInterpreterExternalSemaSource() const {
return m_ExternalSemaSource.get();
return m_ExternalSemaSource;
}
ASTDeserializationListener*