aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlcompiler/qqmljscompiler.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2025-01-24 15:30:16 +0100
committerUlf Hermann <ulf.hermann@qt.io>2025-02-04 16:49:20 +0100
commitc9778d2e9c41036cbd59976c51927d746bb78bcc (patch)
tree8d707606da595851d48f178f946c481bf290ce0a /src/qmlcompiler/qqmljscompiler.cpp
parentc350c3888ec2a24e6d4cbf1d644a0867d4eabc67 (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.cpp19
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;