From d808ebed888891d41173876122f2178023880580 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 14 Oct 2013 15:47:07 +0200 Subject: CppEditor: Fix crash in CompleteSwitchCaseStatement Task-number: QTCREATORBUG-10366 Change-Id: I6d5af5e7a59f3867141c8d7f098128d3db532ee5 Reviewed-by: Erik Verbruggen --- src/plugins/cppeditor/cppquickfixes.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/plugins/cppeditor/cppquickfixes.cpp') 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 &results, const LookupContext &ctxt) if (Enum *e = type->asEnumType()) return e; if (const NamedType *namedType = type->asNamedType()) { - const QList candidates = - ctxt.lookup(namedType->name(), result.scope()); - return findEnum(candidates, ctxt); + if (ClassOrNamespace *con = ctxt.lookupType(namedType->name(), result.scope())) { + const QList enums = con->unscopedEnums(); + const Name *referenceName = namedType->name(); + foreach (Enum *e, enums) { + if (const Name *candidateName = e->name()) { + if (candidateName->isEqualTo(referenceName)) + return e; + } + } + } } } -- cgit v1.2.1