@@ -57,10 +57,11 @@ QDeclarativeInclude::QDeclarativeInclude(const QUrl &url,
57
57
: QObject(engine), m_engine(engine), m_network(0 ), m_reply(0 ), m_http://github.com/url(url), m_redirectCount(0 )
58
58
{
59
59
QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get (engine);
60
- m_context = ep->contextClass ->contextFromValue (QScriptDeclarativeClass::scopeChainValue (ctxt, -3 ));
60
+ m_context = ep->contextClass ->contextFromValue (ep->getEvaluationContextScopeNode (ctxt));
61
+ // ### Can/Should we assume m_context != 0? If so, why not use ep->getContext?
61
62
62
- m_scope[0 ] = QScriptDeclarativeClass::scopeChainValue (ctxt, -4 );
63
- m_scope[1 ] = QScriptDeclarativeClass::scopeChainValue (ctxt, -5 );
63
+ m_scope[0 ] = QScriptDeclarativeClass::scopeChainValue (ctxt, -5 );
64
+ m_scope[1 ] = QScriptDeclarativeClass::scopeChainValue (ctxt, -6 );
64
65
65
66
m_scriptEngine = QDeclarativeEnginePrivate::getScriptEngine (engine);
66
67
m_network = QDeclarativeScriptEngine::get (m_scriptEngine)->networkAccessManager ();
@@ -181,8 +182,7 @@ QScriptValue QDeclarativeInclude::include(QScriptContext *ctxt, QScriptEngine *e
181
182
return engine->undefinedValue ();
182
183
183
184
QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get (engine);
184
-
185
- QUrl contextUrl = ep->contextClass ->urlFromValue (QScriptDeclarativeClass::scopeChainValue (ctxt, -3 ));
185
+ QUrl contextUrl = ep->contextClass ->urlFromValue (ep->getEvaluationContextScopeNode (ctxt));
186
186
if (contextUrl.isEmpty ())
187
187
return ctxt->throwError (QLatin1String (" Qt.include(): Can only be called from JavaScript files" ));
188
188
@@ -216,12 +216,13 @@ QScriptValue QDeclarativeInclude::include(QScriptContext *ctxt, QScriptEngine *e
216
216
QString code = QString::fromUtf8 (data);
217
217
218
218
QDeclarativeContextData *context =
219
- ep->contextClass ->contextFromValue (QScriptDeclarativeClass::scopeChainValue (ctxt, -3 ));
219
+ ep->contextClass ->contextFromValue (ep->getEvaluationContextScopeNode (ctxt));
220
+ // ### Can/Should we assume context != 0, if so we can use ep->getContext()
220
221
221
222
QScriptContext *scriptContext = QScriptDeclarativeClass::pushCleanContext (engine);
222
223
scriptContext->pushScope (ep->contextClass ->newUrlContext (context, 0 , urlString));
223
224
scriptContext->pushScope (ep->globalClass ->staticGlobalObject ());
224
- QScriptValue scope = QScriptDeclarativeClass::scopeChainValue (ctxt, -5 );
225
+ QScriptValue scope = QScriptDeclarativeClass::scopeChainValue (ctxt, -6 );
225
226
scriptContext->pushScope (scope);
226
227
scriptContext->setActivationObject (scope);
227
228
QDeclarativeScriptParser::extractPragmas (code);
@@ -255,7 +256,7 @@ QScriptValue QDeclarativeInclude::worker_include(QScriptContext *ctxt, QScriptEn
255
256
QString urlString = ctxt->argument (0 ).toString ();
256
257
QUrl url (ctxt->argument (0 ).toString ());
257
258
if (url.isRelative ()) {
258
- QString contextUrl = QScriptDeclarativeClass::scopeChainValue (ctxt, -3 ).data ().toString ();
259
+ QString contextUrl = QScriptDeclarativeClass::scopeChainValue (ctxt, -4 ).data ().toString ();
259
260
Q_ASSERT (!contextUrl.isEmpty ());
260
261
261
262
url = QUrl (contextUrl).resolved (url);
@@ -281,7 +282,7 @@ QScriptValue QDeclarativeInclude::worker_include(QScriptContext *ctxt, QScriptEn
281
282
urlContext.setData (QScriptValue (engine, urlString));
282
283
scriptContext->pushScope (urlContext);
283
284
284
- QScriptValue scope = QScriptDeclarativeClass::scopeChainValue (ctxt, -4 );
285
+ QScriptValue scope = QScriptDeclarativeClass::scopeChainValue (ctxt, -5 );
285
286
scriptContext->pushScope (scope);
286
287
scriptContext->setActivationObject (scope);
287
288
QDeclarativeScriptParser::extractPragmas (code);
0 commit comments