diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2025-01-24 15:30:16 +0100 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2025-02-04 16:49:20 +0100 |
| commit | c9778d2e9c41036cbd59976c51927d746bb78bcc (patch) | |
| tree | 8d707606da595851d48f178f946c481bf290ce0a /src/qmlcompiler/qqmljscompiler.cpp | |
| parent | c350c3888ec2a24e6d4cbf1d644a0867d4eabc67 (diff) | |
QtQml: Fix assignment of fileName and URL during compilation
We need to assign them right away when creating the module. If we do it
later on, there are a lot of different code paths to cover and in fact
we were missing some.
Pick-to: 6.9 6.8
Task-number: QTBUG-133053
Change-Id: I57e381c787f504eb9bcd8c2041e41b4f1d1f8b53
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmlcompiler/qqmljscompiler.cpp')
| -rw-r--r-- | src/qmlcompiler/qqmljscompiler.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/qmlcompiler/qqmljscompiler.cpp b/src/qmlcompiler/qqmljscompiler.cpp index 26923f8c6a..18ef327551 100644 --- a/src/qmlcompiler/qqmljscompiler.cpp +++ b/src/qmlcompiler/qqmljscompiler.cpp @@ -174,7 +174,7 @@ bool qCompileQmlFile(const QString &inputFileName, QQmlJSSaveFunction saveFuncti bool storeSourceLocation, QV4::Compiler::CodegenWarningInterface *interface, const QString *fileContents) { - QmlIR::Document irDocument(/*debugMode*/false); + QmlIR::Document irDocument(QString(), QString(), /*debugMode*/false); return qCompileQmlFile(irDocument, inputFileName, saveFunction, aotCompiler, error, storeSourceLocation, interface, fileContents); } @@ -366,8 +366,12 @@ bool qCompileQmlFile(QmlIR::Document &irDocument, const QString &inputFileName, return true; } -bool qCompileJSFile(const QString &inputFileName, const QString &inputFileUrl, QQmlJSSaveFunction saveFunction, QQmlJSCompileError *error) +bool qCompileJSFile( + const QString &inputFileName, const QString &inputFileUrl, QQmlJSSaveFunction saveFunction, + QQmlJSCompileError *error) { + Q_UNUSED(inputFileUrl); + QQmlRefPointer<QV4::CompiledData::CompilationUnit> unit; QString sourceCode; @@ -395,7 +399,7 @@ bool qCompileJSFile(const QString &inputFileName, const QString &inputFileUrl, Q if (!unit || !unit->unitData()) return false; } else { - QmlIR::Document irDocument(/*debugMode*/false); + QmlIR::Document irDocument(QString(), QString(), /*debugMode*/false); QQmlJS::Engine *engine = &irDocument.jsParserEngine; QmlIR::ScriptDirectivesCollector directivesCollector(&irDocument); @@ -431,16 +435,17 @@ bool qCompileJSFile(const QString &inputFileName, const QString &inputFileUrl, Q { QmlIR::JSCodeGen v4CodeGen(&irDocument); - v4CodeGen.generateFromProgram(inputFileName, inputFileUrl, sourceCode, program, - &irDocument.jsModule, QV4::Compiler::ContextType::ScriptImportedByQML); + v4CodeGen.generateFromProgram( + sourceCode, program, &irDocument.jsModule, + QV4::Compiler::ContextType::ScriptImportedByQML); if (v4CodeGen.hasError()) { error->appendDiagnostic(inputFileName, v4CodeGen.error()); return false; } // Precompiled files are relocatable and the final location will be set when loading. - irDocument.jsModule.fileName.clear(); - irDocument.jsModule.finalUrl.clear(); + Q_ASSERT(irDocument.jsModule.fileName.isEmpty()); + Q_ASSERT(irDocument.jsModule.finalUrl.isEmpty()); irDocument.javaScriptCompilationUnit = v4CodeGen.generateCompilationUnit(/*generate unit*/false); QmlIR::QmlUnitGenerator generator; |
