From e94990f15e58fe034e47e82a8f914effd94598a8 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Mon, 22 Nov 2010 15:08:15 +0100 Subject: [PATCH] Code model: Fix endless loop in AbstractEditorSupport::functionAt used by CDB debugger tooltip (introduced by A 354b9712e4655040930a9f18de4e6b4c71dc42d9). Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com> Rubber-stamped-by: dt --- src/plugins/cpptools/abstracteditorsupport.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/plugins/cpptools/abstracteditorsupport.cpp b/src/plugins/cpptools/abstracteditorsupport.cpp index e29f45f2fb2..e8f42be2394 100644 --- a/src/plugins/cpptools/abstracteditorsupport.cpp +++ b/src/plugins/cpptools/abstracteditorsupport.cpp @@ -73,17 +73,14 @@ QString AbstractEditorSupport::functionAt(const CppModelManagerInterface *modelM const CPlusPlus::Overview o; QString rc = o.prettyName(function->name()); // Prepend namespace "Foo::Foo::foo()" up to empty root namespace - for (const CPlusPlus::Symbol *owner = function; ; ) { - if (const CPlusPlus::Scope *nameSpace = owner->enclosingNamespace()) { - const QString name = o.prettyName(nameSpace->name()); - if (name.isEmpty()) { - break; - } else { - rc.prepend(QLatin1String("::")); - rc.prepend(name); - } - } else { + for (const CPlusPlus::Symbol *owner = function->enclosingNamespace(); + owner; owner = owner->enclosingNamespace()) { + const QString name = o.prettyName(owner->name()); + if (name.isEmpty()) { break; + } else { + rc.prepend(QLatin1String("::")); + rc.prepend(name); } } return rc; -- GitLab