diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2015-04-09 16:18:13 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2015-04-23 08:19:01 +0000 |
commit | e1393c71abc9a426c08b1223c0394c5bcd9ae6cd (patch) | |
tree | 3ce140403020fb3e411621aa6e8a62afb66c473a /src/libs/cplusplus/LookupContext.cpp | |
parent | 8a84a7305e4405ab77a2b3c5e70007ef462d0ac8 (diff) | |
download | qt-creator-e1393c71abc9a426c08b1223c0394c5bcd9ae6cd.tar.gz |
C++: Always assign name to LookupScope
... except the global namespace and blocks
Change-Id: I0696b4997c28b5105a000bae2a9a4fa1a56eb6d3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'src/libs/cplusplus/LookupContext.cpp')
-rw-r--r-- | src/libs/cplusplus/LookupContext.cpp | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index b87634c743..69aa682d18 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -530,7 +530,7 @@ public: TemplateNameId::Compare> TemplateNameIdTable; typedef QHash<const AnonymousNameId *, LookupScopePrivate *> Anonymouses; - LookupScopePrivate *allocateChild(); + LookupScopePrivate *allocateChild(const Name *name); void flush(); @@ -645,9 +645,9 @@ LookupScopePrivate::~LookupScopePrivate() delete _scopeLookupCache; } -LookupScopePrivate *LookupScopePrivate::allocateChild() +LookupScopePrivate *LookupScopePrivate::allocateChild(const Name *name) { - LookupScope *e = _factory->allocLookupScope(q); + LookupScope *e = _factory->allocLookupScope(q, name); return e->d; } @@ -1125,9 +1125,7 @@ LookupScopePrivate *LookupScopePrivate::findOrCreateNestedAnonymousType( if (cit != _anonymouses.constEnd()) { return cit.value(); } else { - LookupScopePrivate *newAnonymous = allocateChild(); - if (Q_UNLIKELY(debug)) - newAnonymous->_name = anonymousNameId; + LookupScopePrivate *newAnonymous = allocateChild(anonymousNameId); _anonymouses[anonymousNameId] = newAnonymous; return newAnonymous; } @@ -1171,9 +1169,7 @@ LookupScopePrivate *LookupScopePrivate::nestedType( if (cit != reference->_specializations.end()) { return cit->second; } else { - LookupScopePrivate *newSpecialization = reference->allocateChild(); - if (Q_UNLIKELY(debug)) - newSpecialization->_name = templId; + LookupScopePrivate *newSpecialization = reference->allocateChild(templId); reference->_specializations[templId] = newSpecialization; return newSpecialization; } @@ -1238,9 +1234,7 @@ LookupScopePrivate *LookupScopePrivate::nestedType( // construct all instantiation data. if (templId) { _alreadyConsideredTemplates.insert(templId); - LookupScopePrivate *instantiation = baseTemplateClassReference->allocateChild(); - if (Q_UNLIKELY(debug)) - instantiation->_name = templId; + LookupScopePrivate *instantiation = baseTemplateClassReference->allocateChild(templId); while (!origin->_symbols.isEmpty() && origin->_symbols[0]->isBlock()) origin = origin->_parent; @@ -1441,7 +1435,7 @@ void Instantiator::instantiate(LookupScopePrivate *lookupScope, nestedLookupScope->flush(); if (isInstantiationNeeded(nestedLookupScope)) { - nestedInstantiation = nestedLookupScope->allocateChild(); + nestedInstantiation = nestedLookupScope->allocateChild(nestedName); nestedInstantiation->_enums.append(nestedLookupScope->_enums); nestedInstantiation->_usings.append(nestedLookupScope->_usings); nestedInstantiation->_instantiationOrigin = nestedLookupScope; @@ -1565,10 +1559,8 @@ LookupScope *LookupScopePrivate::findOrCreateType( LookupScopePrivate *e = nestedType(name, origin); if (! e) { - e = allocateChild(); + e = allocateChild(name); e->_rootClass = clazz; - if (Q_UNLIKELY(debug)) - e->_name = name; _nestedScopes[name] = e; } @@ -1585,7 +1577,7 @@ CreateBindings::CreateBindings(Document::Ptr thisDocument, const Snapshot &snaps , _control(QSharedPointer<Control>(new Control)) , _expandTemplates(false) { - _globalNamespace = allocLookupScope(/*parent = */ 0); + _globalNamespace = allocLookupScope(/*parent = */ 0, /*name = */ 0); _currentLookupScope = _globalNamespace; process(thisDocument); @@ -1645,10 +1637,11 @@ void CreateBindings::process(Symbol *symbol) _currentLookupScope->d->addTodo(symbol); } -LookupScope *CreateBindings::allocLookupScope(LookupScope *parent) +LookupScope *CreateBindings::allocLookupScope(LookupScope *parent, const Name *name) { LookupScope *e = new LookupScope(this, parent); e->d->_control = control(); + e->d->_name = name; _entities.append(e); return e; } |