diff --git a/src/libs/qmljs/qmljsbind.cpp b/src/libs/qmljs/qmljsbind.cpp index 0354c9992acbf2133deba7f7581748abac8c3a83..56e78be2d2c3bbf59c7b936c771c6bf61e9bb490 100644 --- a/src/libs/qmljs/qmljsbind.cpp +++ b/src/libs/qmljs/qmljsbind.cpp @@ -35,7 +35,14 @@ using namespace QmlJS; using namespace QmlJS::AST; using namespace QmlJS::Interpreter; -Bind::Bind() +Bind::Bind(Interpreter::Engine *interp) + : _interp(interp), + _interestingMember(0), + _currentObjectValue(0), + _typeEnvironment(0), + _idEnvironment(0), + _interestingObjectValue(0), + _rootObjectValue(0) { } @@ -43,20 +50,19 @@ Bind::~Bind() { } -Interpreter::ObjectValue *Bind::operator()(Document::Ptr doc, Snapshot &snapshot, UiObjectMember *member, Interpreter::Engine &interp) +Interpreter::ObjectValue *Bind::operator()(Document::Ptr doc, const Snapshot &snapshot, UiObjectMember *member) { UiProgram *program = doc->qmlProgram(); if (!program) return 0; _doc = doc; - _snapshot = &snapshot; + _snapshot = snapshot; _interestingMember = member; - _interp = &interp; _currentObjectValue = 0; - _typeEnvironment = _interp->newObject(0); - _idEnvironment = _interp->newObject(0); + _typeEnvironment = _interp->newObject(/*prototype =*/ 0); + _idEnvironment = _interp->newObject(/*prototype =*/ 0); _interestingObjectValue = 0; _rootObjectValue = 0; diff --git a/src/libs/qmljs/qmljsbind.h b/src/libs/qmljs/qmljsbind.h index cb89e2634f2b687c8c1d01765574919da19c8bc0..df59c45d5fc2dfb55e24abda6d6e7ebb07cbd6e8 100644 --- a/src/libs/qmljs/qmljsbind.h +++ b/src/libs/qmljs/qmljsbind.h @@ -39,10 +39,10 @@ namespace QmlJS { class QMLJS_EXPORT Bind: protected AST::Visitor { public: - Bind(); + Bind(Interpreter::Engine *interp); virtual ~Bind(); - Interpreter::ObjectValue* operator()(Document::Ptr doc, Snapshot &snapshot, AST::UiObjectMember *member, Interpreter::Engine &interp); + Interpreter::ObjectValue* operator()(Document::Ptr doc, const Snapshot &snapshot, AST::UiObjectMember *member); protected: void accept(AST::Node *node); @@ -148,9 +148,9 @@ protected: private: Document::Ptr _doc; - Snapshot *_snapshot; - AST::UiObjectMember *_interestingMember; + Snapshot _snapshot; Interpreter::Engine *_interp; + AST::UiObjectMember *_interestingMember; Interpreter::ObjectValue *_currentObjectValue; diff --git a/src/plugins/qmljseditor/qmlcodecompletion.cpp b/src/plugins/qmljseditor/qmlcodecompletion.cpp index 35a0046018432d01312cf77ea0174a17833b732d..dfd8f3adabdb722212d0a63610220824a182cbb2 100644 --- a/src/plugins/qmljseditor/qmlcodecompletion.cpp +++ b/src/plugins/qmljseditor/qmlcodecompletion.cpp @@ -96,6 +96,7 @@ static QIcon iconForColor(const QColor &color) } +#if 0 static QString qualifiedNameId(AST::UiQualifiedId *it) { QString text; @@ -113,7 +114,6 @@ static QString qualifiedNameId(AST::UiQualifiedId *it) return text; } -#if 0 static Interpreter::ObjectValue *newComponent(Interpreter::Engine *engine, const QString &name, const QHash<QString, Document::Ptr> &userComponents, QSet<QString> *processed) @@ -821,8 +821,8 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor) scope->setProperty(QLatin1String("parent"), parentItem); #endif - Bind bind; - scope = bind(qmlDocument, snapshot, declaringMember, interp); + Bind bind(&interp); + scope = bind(qmlDocument, snapshot, declaringMember); } // Search for the operator that triggered the completion.