C++: cleanup setting the bindings in the lookup context class.

Change-Id: I114d7b1116ee5e345675a332c30312614c0faf5f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
Erik Verbruggen
2014-02-13 11:42:56 +01:00
parent 3746499472
commit e61d688025
5 changed files with 26 additions and 53 deletions

View File

@@ -160,16 +160,19 @@ LookupContext::LookupContext(Document::Ptr thisDocument,
: _expressionDocument(Document::create(QLatin1String("<LookupContext>")))
, _thisDocument(thisDocument)
, _snapshot(snapshot)
, _bindings(new CreateBindings(thisDocument, snapshot))
, m_expandTemplates(false)
{
}
LookupContext::LookupContext(Document::Ptr expressionDocument,
Document::Ptr thisDocument,
const Snapshot &snapshot)
const Snapshot &snapshot,
QSharedPointer<CreateBindings> bindings)
: _expressionDocument(expressionDocument)
, _thisDocument(thisDocument)
, _snapshot(snapshot)
, _bindings(bindings)
, m_expandTemplates(false)
{
}
@@ -277,21 +280,6 @@ QList<LookupItem> LookupContext::lookupByUsing(const Name *name, Scope *scope) c
}
QSharedPointer<CreateBindings> LookupContext::bindings() const
{
if (! _bindings) {
_bindings = QSharedPointer<CreateBindings>(new CreateBindings(_thisDocument, _snapshot));
_bindings->setExpandTemplates(m_expandTemplates);
}
return _bindings;
}
void LookupContext::setBindings(QSharedPointer<CreateBindings> bindings)
{
_bindings = bindings;
}
Document::Ptr LookupContext::expressionDocument() const
{ return _expressionDocument; }
@@ -533,6 +521,7 @@ ClassOrNamespace::ClassOrNamespace(CreateBindings *factory, ClassOrNamespace *pa
, _name(0)
#endif // DEBUG_LOOKUP
{
Q_ASSERT(factory);
}
ClassOrNamespace::~ClassOrNamespace()