C++: Fix dangling IDocument* in CppCompletionAssistProcessor

Steps to reproduce the crash:
 1. Open some long file, e.g. botan.cpp
 2. Trigger completion and close editor immediately

The IDocument pointer was only used to reference the file name. Instead
of passing an IDocument* to the IAssistInterface, pass the file name.

Change-Id: Iafce9b818806a77968a10541114bc9b7c8665f11
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-03-18 14:58:46 +01:00
parent 7f61d11311
commit 947207c802
16 changed files with 29 additions and 27 deletions

View File

@@ -167,12 +167,12 @@ class CppCompletionAssistInterface : public TextEditor::DefaultAssistInterface
public:
CppCompletionAssistInterface(QTextDocument *textDocument,
int position,
Core::IDocument *document,
const QString &fileName,
TextEditor::AssistReason reason,
const CPlusPlus::Snapshot &snapshot,
const QStringList &includePaths,
const QStringList &frameworkPaths)
: TextEditor::DefaultAssistInterface(textDocument, position, document, reason)
: TextEditor::DefaultAssistInterface(textDocument, position, fileName, reason)
, m_snapshot(snapshot)
, m_includePaths(includePaths)
, m_frameworkPaths(frameworkPaths)