summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Control.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-07-12 13:41:54 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-07-12 15:10:00 +0200
commitadfdb51660f3d4251101283efa46b6617cbe43d4 (patch)
tree7c06bc81efca2349820b3f2e69c3d30da34f2df8 /src/shared/cplusplus/Control.cpp
parent94264617bfdda8fbfc31921dc9ba49ffff84eaeb (diff)
downloadqt-creator-adfdb51660f3d4251101283efa46b6617cbe43d4.tar.gz
Recursive definition of CPlusPlus::QualifiedNameId.
Done-with: Erik Verbruggen
Diffstat (limited to 'src/shared/cplusplus/Control.cpp')
-rw-r--r--src/shared/cplusplus/Control.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/shared/cplusplus/Control.cpp b/src/shared/cplusplus/Control.cpp
index 93f77e3aae..15b2c51787 100644
--- a/src/shared/cplusplus/Control.cpp
+++ b/src/shared/cplusplus/Control.cpp
@@ -177,11 +177,10 @@ template <> struct Compare<QualifiedNameId>
{
bool operator()(const QualifiedNameId &name, const QualifiedNameId &otherName) const
{
- if (name.isGlobal() == otherName.isGlobal())
- return std::lexicographical_compare(name.firstName(), name.lastName(),
- otherName.firstName(), otherName.lastName());
+ if (name.base() == otherName.base())
+ return name.name() < otherName.name();
- return name.isGlobal() < otherName.isGlobal();
+ return name.base() < otherName.base();
}
};
@@ -285,10 +284,9 @@ public:
return conversionNameIds.intern(ConversionNameId(type));
}
- template <typename _Iterator>
- const QualifiedNameId *findOrInsertQualifiedNameId(_Iterator first, _Iterator last, bool isGlobal)
+ const QualifiedNameId *findOrInsertQualifiedNameId(const Name *base, const Name *name)
{
- return qualifiedNameIds.intern(QualifiedNameId(first, last, isGlobal));
+ return qualifiedNameIds.intern(QualifiedNameId(base, name));
}
template <typename _Iterator>
@@ -641,11 +639,9 @@ const OperatorNameId *Control::operatorNameId(int kind)
const ConversionNameId *Control::conversionNameId(const FullySpecifiedType &type)
{ return d->findOrInsertConversionNameId(type); }
-const QualifiedNameId *Control::qualifiedNameId(const Name *const *names,
- unsigned nameCount,
- bool isGlobal)
+const QualifiedNameId *Control::qualifiedNameId(const Name *base, const Name *name)
{
- return d->findOrInsertQualifiedNameId(names, names + nameCount, isGlobal);
+ return d->findOrInsertQualifiedNameId(base, name);
}
const SelectorNameId *Control::selectorNameId(const Name *const *names,