diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-11-22 15:08:15 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-11-22 15:10:20 +0100 |
commit | e94990f15e58fe034e47e82a8f914effd94598a8 (patch) | |
tree | 1c86105620ccb73807eb04d52e3718a53ef44038 /src/plugins/cpptools/abstracteditorsupport.cpp | |
parent | fa7d22e34888f517237861950f13efca2e40681f (diff) |
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
Diffstat (limited to 'src/plugins/cpptools/abstracteditorsupport.cpp')
-rw-r--r-- | src/plugins/cpptools/abstracteditorsupport.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/plugins/cpptools/abstracteditorsupport.cpp b/src/plugins/cpptools/abstracteditorsupport.cpp index e29f45f2fb..e8f42be239 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; |