From 193db4c52613a37275535783825190ddd7e1f758 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 26 Jul 2018 11:05:08 +0200 Subject: Clean up internal QML unit creation API Since the callers always end up assigning the returned unit pointer back to the compilation unit's data member, we might as well do that inside the function and return void instead. Change-Id: I7a7f3e7a0c89ffe2f9474149fcf61736609b363d Reviewed-by: Lars Knoll --- tools/qmlcachegen/qmlcachegen.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'tools/qmlcachegen') diff --git a/tools/qmlcachegen/qmlcachegen.cpp b/tools/qmlcachegen/qmlcachegen.cpp index 34814af17c..4dddab18b2 100644 --- a/tools/qmlcachegen/qmlcachegen.cpp +++ b/tools/qmlcachegen/qmlcachegen.cpp @@ -162,7 +162,7 @@ static bool checkArgumentsObjectUseInSignalHandlers(const QmlIR::Document &doc, return true; } -using SaveFunction = std::function; +using SaveFunction = std::function &, QString *)>; static bool compileQmlFile(const QString &inputFileName, SaveFunction saveFunction, Error *error) { @@ -232,12 +232,12 @@ static bool compileQmlFile(const QString &inputFileName, SaveFunction saveFuncti QmlIR::QmlUnitGenerator generator; irDocument.javaScriptCompilationUnit = v4CodeGen.generateCompilationUnit(/*generate unit*/false); - QV4::CompiledData::Unit *unit = generator.generate(irDocument); + generator.generate(irDocument); + QV4::CompiledData::Unit *unit = const_cast(irDocument.javaScriptCompilationUnit->data); unit->flags |= QV4::CompiledData::Unit::StaticData; unit->flags |= QV4::CompiledData::Unit::PendingTypeCompilation; - irDocument.javaScriptCompilationUnit->data = unit; - if (!saveFunction(irDocument.javaScriptCompilationUnit.data(), &error->message)) + if (!saveFunction(irDocument.javaScriptCompilationUnit, &error->message)) return false; free(unit); @@ -321,14 +321,13 @@ static bool compileJSFile(const QString &inputFileName, const QString &inputFile irDocument.jsModule.fileName.clear(); irDocument.jsModule.finalUrl.clear(); - QmlIR::QmlUnitGenerator generator; - irDocument.javaScriptCompilationUnit = v4CodeGen.generateCompilationUnit(/*generate unit*/false); - QV4::CompiledData::Unit *unit = generator.generate(irDocument); + QmlIR::QmlUnitGenerator generator; + generator.generate(irDocument); + QV4::CompiledData::Unit *unit = const_cast(irDocument.javaScriptCompilationUnit->data); unit->flags |= QV4::CompiledData::Unit::StaticData; - irDocument.javaScriptCompilationUnit->data = unit; - if (!saveFunction(irDocument.javaScriptCompilationUnit.data(), &error->message)) { + if (!saveFunction(irDocument.javaScriptCompilationUnit, &error->message)) { engine->setDirectives(oldDirs); return false; } @@ -339,7 +338,8 @@ static bool compileJSFile(const QString &inputFileName, const QString &inputFile return true; } -static bool saveUnitAsCpp(const QString &inputFileName, const QString &outputFileName, QV4::CompiledData::CompilationUnit *unit, QString *errorString) +static bool saveUnitAsCpp(const QString &inputFileName, const QString &outputFileName, + const QQmlRefPointer &unit, QString *errorString) { QSaveFile f(outputFileName); if (!f.open(QIODevice::WriteOnly | QIODevice::Truncate)) { @@ -527,12 +527,12 @@ int main(int argc, char **argv) inputFileUrl = QStringLiteral("qrc://") + inputResourcePath; - saveFunction = [inputResourcePath, outputFileName](QV4::CompiledData::CompilationUnit *unit, QString *errorString) { + saveFunction = [inputResourcePath, outputFileName](const QQmlRefPointer &unit, QString *errorString) { return saveUnitAsCpp(inputResourcePath, outputFileName, unit, errorString); }; } else { - saveFunction = [outputFileName](QV4::CompiledData::CompilationUnit *unit, QString *errorString) { + saveFunction = [outputFileName](const QQmlRefPointer &unit, QString *errorString) { return unit->saveToDisk(outputFileName, errorString); }; } -- cgit v1.2.3