From 5563ab3d68e631e0f367974a5fceca7e565ec68d Mon Sep 17 00:00:00 2001 From: Vassil Vassilev Date: Wed, 1 Oct 2014 12:13:51 +0200 Subject: [PATCH] Revert "Fix cling tear down crash involving the ExternalSemaSource." This reverts commit d320b74acf5172f62b8ac565955ea6497688d225. --- include/cling/Interpreter/InterpreterCallbacks.h | 3 +-- lib/Interpreter/InterpreterCallbacks.cpp | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/include/cling/Interpreter/InterpreterCallbacks.h b/include/cling/Interpreter/InterpreterCallbacks.h index 545294bb..446b29ce 100644 --- a/include/cling/Interpreter/InterpreterCallbacks.h +++ b/include/cling/Interpreter/InterpreterCallbacks.h @@ -53,8 +53,7 @@ namespace cling { ///\brief Our custom SemaExternalSource, translating interesting events into /// callbacks. /// - ///This must be a RefCntPtr has internally the ASTContext is using one too. - llvm::IntrusiveRefCntPtr m_ExternalSemaSource; + std::unique_ptr m_ExternalSemaSource; ///\brief Our custom ASTDeserializationListener, translating interesting /// events into callbacks. diff --git a/lib/Interpreter/InterpreterCallbacks.cpp b/lib/Interpreter/InterpreterCallbacks.cpp index 807cb651..b45ea4d4 100644 --- a/lib/Interpreter/InterpreterCallbacks.cpp +++ b/lib/Interpreter/InterpreterCallbacks.cpp @@ -167,10 +167,7 @@ namespace cling { if (!externalSemaSrc || externalSemaSrc == Reader) { // If the ExternalSemaSource is the PCH reader we still need to insert // our listener. - llvm::IntrusiveRefCntPtr - tmpptr(new InterpreterExternalSemaSource(this)); - m_ExternalSemaSource.swap(tmpptr); - + m_ExternalSemaSource.reset(new InterpreterExternalSemaSource(this)); m_ExternalSemaSource->InitializeSema(SemaRef); m_Interpreter->getSema().addExternalSource(m_ExternalSemaSource.get());