forked from qt-creator/qt-creator
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:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user