diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-07-12 13:41:54 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-07-12 15:10:00 +0200 |
commit | adfdb51660f3d4251101283efa46b6617cbe43d4 (patch) | |
tree | 7c06bc81efca2349820b3f2e69c3d30da34f2df8 /src/shared/cplusplus/Control.cpp | |
parent | 94264617bfdda8fbfc31921dc9ba49ffff84eaeb (diff) | |
download | qt-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.cpp | 18 |
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, |