C++: Add some QTC_ASSERT guards in CodeAssistPrivate

This should prevent a not reproducible crash.

Change-Id: I8ebdec02799e1eccd37e918d5ab02a0a7fa5afac
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-03-05 13:47:29 +01:00
committed by hjk
parent 7b7058391f
commit c3b6d1501c

View File

@@ -41,6 +41,7 @@
#include <texteditor/texteditorsettings.h> #include <texteditor/texteditorsettings.h>
#include <texteditor/completionsettings.h> #include <texteditor/completionsettings.h>
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
#include <utils/qtcassert.h>
#include <QObject> #include <QObject>
#include <QList> #include <QList>
@@ -221,7 +222,7 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason,
AssistKind kind, AssistKind kind,
IAssistProvider *provider) IAssistProvider *provider)
{ {
Q_ASSERT(!isWaitingForProposal()); QTC_ASSERT(!isWaitingForProposal(), return);
if (!provider) { if (!provider) {
if (kind == Completion) { if (kind == Completion) {
@@ -328,6 +329,7 @@ void CodeAssistantPrivate::displayProposal(IAssistProposal *newProposal, AssistR
void CodeAssistantPrivate::processProposalItem(IAssistProposalItem *proposalItem) void CodeAssistantPrivate::processProposalItem(IAssistProposalItem *proposalItem)
{ {
QTC_ASSERT(m_proposal, return);
proposalItem->apply(m_textEditor, m_proposal->basePosition()); proposalItem->apply(m_textEditor, m_proposal->basePosition());
destroyContext(); destroyContext();
process(); process();
@@ -335,6 +337,7 @@ void CodeAssistantPrivate::processProposalItem(IAssistProposalItem *proposalItem
void CodeAssistantPrivate::handlePrefixExpansion(const QString &newPrefix) void CodeAssistantPrivate::handlePrefixExpansion(const QString &newPrefix)
{ {
QTC_ASSERT(m_proposal, return);
const int currentPosition = m_textEditor->position(); const int currentPosition = m_textEditor->position();
m_textEditor->setCursorPosition(m_proposal->basePosition()); m_textEditor->setCursorPosition(m_proposal->basePosition());
m_textEditor->replace(currentPosition - m_proposal->basePosition(), newPrefix); m_textEditor->replace(currentPosition - m_proposal->basePosition(), newPrefix);
@@ -397,6 +400,7 @@ void CodeAssistantPrivate::notifyChange()
stopAutomaticProposalTimer(); stopAutomaticProposalTimer();
if (isDisplayingProposal()) { if (isDisplayingProposal()) {
QTC_ASSERT(m_proposal, return);
if (m_textEditor->position() < m_proposal->basePosition()) { if (m_textEditor->position() < m_proposal->basePosition()) {
destroyContext(); destroyContext();
} else { } else {