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