From 35b4420f7ad4634d653cbdd44b563ce8da53d205 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar <nikolai.kosjar@digia.com> Date: Thu, 14 Feb 2013 14:25:31 +0100 Subject: [PATCH] Editor: Add further Use::isInvalid() guards Task-number: QTCREATORBUG-8738 Change-Id: I297731f15bd9001f7edc83c956a15ef660929dc7 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com> --- src/plugins/cppeditor/cppfunctiondecldeflink.cpp | 2 ++ src/plugins/cppeditor/cppinsertdecldef.cpp | 3 +++ src/plugins/cpptools/cppchecksymbols.cpp | 2 +- src/plugins/cpptools/cppchecksymbols.h | 4 ++-- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/plugins/cppeditor/cppfunctiondecldeflink.cpp b/src/plugins/cppeditor/cppfunctiondecldeflink.cpp index 0a17c83053d..7d1764ac521 100644 --- a/src/plugins/cppeditor/cppfunctiondecldeflink.cpp +++ b/src/plugins/cppeditor/cppfunctiondecldeflink.cpp @@ -913,6 +913,8 @@ Utils::ChangeSet FunctionDeclDefLink::changes(const Snapshot &snapshot, int targ it.next(); const QList<SemanticInfo::Use> &uses = localSymbols.uses.value(it.key()); foreach (const SemanticInfo::Use &use, uses) { + if (use.isInvalid()) + continue; const int useStart = targetFile->position(use.line, use.column); if (useStart <= endOfArguments) continue; diff --git a/src/plugins/cppeditor/cppinsertdecldef.cpp b/src/plugins/cppeditor/cppinsertdecldef.cpp index cf534e9d21b..6f0ce466040 100644 --- a/src/plugins/cppeditor/cppinsertdecldef.cpp +++ b/src/plugins/cppeditor/cppinsertdecldef.cpp @@ -1096,6 +1096,9 @@ void ExtractFunction::match(const CppQuickFixInterface &interface, QuickFixOpera bool usedInsideExtraction = false; const QList<SemanticInfo::Use> &uses = it.value(); foreach (const SemanticInfo::Use &use, uses) { + if (use.isInvalid()) + continue; + const int position = file->position(use.line, use.column); if (position < analyser.m_extractionStart) usedBeforeExtraction = true; diff --git a/src/plugins/cpptools/cppchecksymbols.cpp b/src/plugins/cpptools/cppchecksymbols.cpp index c8245a0881a..c6283ed2e45 100644 --- a/src/plugins/cpptools/cppchecksymbols.cpp +++ b/src/plugins/cpptools/cppchecksymbols.cpp @@ -1104,7 +1104,7 @@ static const int chunkSize = 50; void CheckSymbols::addUse(const Use &use) { - if (!use.line) + if (use.isInvalid()) return; if (! enclosingFunctionDefinition()) { diff --git a/src/plugins/cpptools/cppchecksymbols.h b/src/plugins/cpptools/cppchecksymbols.h index ce8e9fecb0f..8b1694aed25 100644 --- a/src/plugins/cpptools/cppchecksymbols.h +++ b/src/plugins/cpptools/cppchecksymbols.h @@ -79,8 +79,8 @@ public: for (int i = from; i < to; ++i) { const Use use = future.resultAt(i); - if (! use.line) - continue; // skip it, it's an invalid use. + if (use.isInvalid()) + continue; const int blockNumber = use.line - 1; chunks[blockNumber].append(use); -- GitLab