diff options
Diffstat (limited to 'src/qml/jsruntime/qv4script.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4script.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/qml/jsruntime/qv4script.cpp b/src/qml/jsruntime/qv4script.cpp index 395409ad4b..894426ce3b 100644 --- a/src/qml/jsruntime/qv4script.cpp +++ b/src/qml/jsruntime/qv4script.cpp @@ -26,14 +26,15 @@ using namespace QQmlJS; Script::Script(ExecutionEngine *v4, QmlContext *qml, const QQmlRefPointer<ExecutableCompilationUnit> &compilationUnit) : line(1), column(0), context(v4->rootContext()), strictMode(false), inheritContext(true), parsed(false) - , compilationUnit(compilationUnit), vmFunction(nullptr), parseAsBinding(true) + , compilationUnit(compilationUnit), parseAsBinding(true) { if (qml) qmlContext.set(v4, *qml); parsed = true; - vmFunction = compilationUnit ? compilationUnit->linkToEngine(v4) : nullptr; + vmFunction.set(v4, + compilationUnit ? compilationUnit->rootFunction() : nullptr); } Script::~Script() @@ -45,14 +46,12 @@ void Script::parse() if (parsed) return; - using namespace QV4::Compiler; - parsed = true; ExecutionEngine *v4 = context->engine(); Scope valueScope(v4); - Module module(v4->debugger() != nullptr); + QV4::Compiler::Module module(v4->debugger() != nullptr); if (sourceCode.startsWith(QLatin1String("function("))) { static const int snippetLength = 70; @@ -96,8 +95,8 @@ void Script::parse() if (v4->hasException) return; - compilationUnit = QV4::ExecutableCompilationUnit::create(cg.generateCompilationUnit()); - vmFunction = compilationUnit->linkToEngine(v4); + compilationUnit = v4->insertCompilationUnit(cg.generateCompilationUnit()); + vmFunction.set(v4, compilationUnit->rootFunction()); } if (!vmFunction) { @@ -135,7 +134,7 @@ Function *Script::function() return vmFunction; } -QV4::CompiledData::CompilationUnit Script::precompile( +QQmlRefPointer<QV4::CompiledData::CompilationUnit> Script::precompile( QV4::Compiler::Module *module, QQmlJS::Engine *jsEngine, Compiler::JSUnitGenerator *unitGenerator, const QString &fileName, const QString &finalUrl, const QString &source, QList<QQmlError> *reportedErrors, @@ -199,8 +198,9 @@ Script *Script::createFromFileOrCache(ExecutionEngine *engine, QmlContext *qmlCo &cacheError) : nullptr) { QQmlRefPointer<QV4::ExecutableCompilationUnit> jsUnit - = QV4::ExecutableCompilationUnit::create( - QV4::CompiledData::CompilationUnit(cachedUnit->qmlData, cachedUnit->aotCompiledFunctions)); + = engine->insertCompilationUnit( + QQml::makeRefPointer<QV4::CompiledData::CompilationUnit>( + cachedUnit->qmlData, cachedUnit->aotCompiledFunctions)); return new QV4::Script(engine, qmlContext, jsUnit); } |