From e15443e9523df0e40414b1baf7d8182f641f7f2c Mon Sep 17 00:00:00 2001
From: Leandro Melo <leandro.melo@nokia.com>
Date: Wed, 7 Sep 2011 14:02:31 +0200
Subject: [PATCH] Code assist: Fix memory leak in completion

One fix is in the runner, which is part of the completion
engine itself. The other is specific for C++.

Task-number: QTCREATORBUG-5947
Change-Id: Ib8fff1eb5adad1ffb2a11da66c50b545e1457df8
Reviewed-on: http://codereview.qt.nokia.com/4355
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
---
 src/plugins/cpptools/cppcompletionassist.cpp | 1 +
 src/plugins/texteditor/codeassist/runner.cpp | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp
index 6409758de12..c1585617806 100644
--- a/src/plugins/cpptools/cppcompletionassist.cpp
+++ b/src/plugins/cpptools/cppcompletionassist.cpp
@@ -776,6 +776,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 a6afedcc160..eaabb5f77a5 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)
-- 
GitLab