aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cpptools/abstracteditorsupport.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2010-11-22 15:08:15 +0100
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2010-11-22 15:10:20 +0100
commite94990f15e58fe034e47e82a8f914effd94598a8 (patch)
tree1c86105620ccb73807eb04d52e3718a53ef44038 /src/plugins/cpptools/abstracteditorsupport.cpp
parentfa7d22e34888f517237861950f13efca2e40681f (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.cpp17
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;