diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-10-14 15:47:07 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-10-17 12:04:42 +0200 |
commit | d808ebed888891d41173876122f2178023880580 (patch) | |
tree | 3d53f5a97540162cb356ce04033c16a4f58e296a /src/plugins/cppeditor/cppquickfixes.cpp | |
parent | c79a605b8f487db2ab5e194b50f44345b649a15e (diff) | |
download | qt-creator-d808ebed888891d41173876122f2178023880580.tar.gz |
CppEditor: Fix crash in CompleteSwitchCaseStatement
Task-number: QTCREATORBUG-10366
Change-Id: I6d5af5e7a59f3867141c8d7f098128d3db532ee5
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cppeditor/cppquickfixes.cpp')
-rw-r--r-- | src/plugins/cppeditor/cppquickfixes.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index dcdd879686..6956cb9c78 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -2295,9 +2295,16 @@ Enum *findEnum(const QList<LookupItem> &results, const LookupContext &ctxt) if (Enum *e = type->asEnumType()) return e; if (const NamedType *namedType = type->asNamedType()) { - const QList<LookupItem> candidates = - ctxt.lookup(namedType->name(), result.scope()); - return findEnum(candidates, ctxt); + if (ClassOrNamespace *con = ctxt.lookupType(namedType->name(), result.scope())) { + const QList<Enum *> enums = con->unscopedEnums(); + const Name *referenceName = namedType->name(); + foreach (Enum *e, enums) { + if (const Name *candidateName = e->name()) { + if (candidateName->isEqualTo(referenceName)) + return e; + } + } + } } } |