diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp index dddbca6e2fab1f18c2d910141623fd7aefc50f8e..8a04f940ab2ab19ca73cc11762d6aeb7713beffc 100644 --- a/src/plugins/cpptools/cppcompletionassist.cpp +++ b/src/plugins/cpptools/cppcompletionassist.cpp @@ -775,6 +775,7 @@ IAssistProposal *CppCompletionAssistProcessor::createContentProposal() } } } else { + delete *it; it = m_completions.erase(it); } } diff --git a/src/plugins/texteditor/codeassist/runner.cpp b/src/plugins/texteditor/codeassist/runner.cpp index a6afedcc1608ce8cd71a94946dbe1b4b283c85de..eaabb5f77a5734f926158416dbd525c124e457d1 100644 --- a/src/plugins/texteditor/codeassist/runner.cpp +++ b/src/plugins/texteditor/codeassist/runner.cpp @@ -34,6 +34,7 @@ #include "iassistprocessor.h" #include "iassistproposal.h" #include "iassistinterface.h" +#include "iassistproposalmodel.h" using namespace TextEditor; using namespace Internal; @@ -48,8 +49,11 @@ ProcessorRunner::ProcessorRunner() ProcessorRunner::~ProcessorRunner() { delete m_processor; - if (m_discardProposal) + if (m_discardProposal && m_proposal) { + // Proposal doesn't own the model, so we need to delete both. + delete m_proposal->model(); delete m_proposal; + } } void ProcessorRunner::setProcessor(IAssistProcessor *computer)