aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlcompiler/qqmljscompilerstats.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add security header for src/qmlcompilerOlivier De Cannière2025-09-171-0/+1
| | | | | | | | | | | | | | | | | | We assume that QML or JS code comes from a trusted source. Therefore, most files are deemed to be significant even if they parse data. This includes the source code itself but also the associated metadata or cache files. However, the QML compiler also generates C++ code. Extra care needs to be taken with the generator as a vulnerability there could propagate and have a disproportionate effect on the program's security. It is marked as critical. QUIP: 23 Fixes: QTBUG-136195 Pick-to: 6.10 6.9 6.8 Change-Id: I70630361ec8e9cb3969f78a3fdf36a41334a33b3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Compiler: Adapt AotStats to skipping functionsOlivier De Cannière2025-04-171-9/+24
| | | | | | | | | | | A revision was also added to the aotstats json format. Print a message asking the user to try again with a clean build if a missmatch in revision is found. Task-number: QTBUG-134790 Pick-to: 6.9 6.8 Change-Id: I0961bf841db17f280492ec787f404d9fe9b563f4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Aotstats: Use common static strings for Json object operationsOlivier De Cannière2025-04-171-20/+31
| | | | | | | | Task-number: QTBUG-134790 Pick-to: 6.9 6.8 Change-Id: Idbba9224d7343b64cb4166e88328029e22c38601 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Compiler: Fix various clazy warningsOlivier De Cannière2025-03-211-1/+1
| | | | | Change-Id: Ib83c8d3452d5a0521295750f068f429b414da6ff Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* aotstats: Keep track of files and modules with no functions or bindingsOlivier De Cannière2024-11-041-0/+10
| | | | | | | | | | | | Before this change, the report presented to the user would be completely silent about them. For the sake of consitency, register each file before trying to compile it. This will then add an entry for empty files and modules. Task-number: QTBUG-124667 Pick-to: 6.8 Change-Id: I502660b7a16a67a173763f9ea2b081cbcceb5658 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* aotstats: Support --only-bytecode and modules with no qml filesOlivier De Cannière2024-11-041-3/+3
| | | | | | | | | | | | | | | | | | | | It is possible to pass --only-bytecode to qmlcachegen. As the name implies, this only generates the bytecode for the qml files and does not compile them. This case was not taken into account which could lead to files commands depend upon not being generated. Therefore, keep track of empty and only-bytecode modules in files generated by cmake and pass them to qmlaotstats upon aggregation such that it can include that information in the report. Also, only pass the arguments specific to aotstats to qmlcachegen if --only-bytecode is not set for that module. Fixes: QTBUG-130084 Task-number: QTBUG-124667 Pick-to: 6.8 Change-Id: I44b4a80e8a6fd2f9bc16ae1bb2c8d540ff3b697b Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QmlCompiler: Remove duplicate QIODevice::ReadOnly flagOlivier De Cannière2024-06-041-1/+1
| | | | | Change-Id: Ie5b60d574538f799b6d635d111f214cd95249df0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlCompiler: Fix various style issuesUlf Hermann2024-06-031-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | Don't copy QQmlJSScope::ConstPtr where it can be avoided, keep things const where we can, pass values as const ref and return them as value, std::move where possible and easily visible. Coverity-Id: 462267 Coverity-Id: 462268 Coverity-Id: 462269 Coverity-Id: 462271 Coverity-Id: 462272 Coverity-Id: 462273 Coverity-Id: 462275 Coverity-Id: 462276 Coverity-Id: 462277 Coverity-Id: 462278 Coverity-Id: 462279 Coverity-Id: 462281 Coverity-Id: 462283 Coverity-Id: 462284 Coverity-Id: 462285 Change-Id: I2c8f2267d5ab521145111f7b56eaad6cf0234a77 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Compiler: Aggregate and print aotstatsOlivier De Cannière2024-06-011-0/+54
| | | | | | | | | | | | | | | | | | | This patch enables the aggregation and printing of aotstats recorded by qmlcachegen for compiled qml files. The aotstats files for individual qml files are aggregated into module-level aotstats files and then into one global aotstats file. This file is then presented into a more human friendly format. The all_aotstats target can be used to print the collected stats of all the compiled files and modules. Due to CMake configuration errors, the feature has temporarily been disabled on Xcode. This should be fixed before soon. Created QTBUG-125995. Task-number: QTBUG-124667 Change-Id: I0c82142626743e9c1af98516c553f4dd7bc6da13 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Compiler: Record statistics about aot compilationOlivier De Cannière2024-05-281-0/+134
This patch introduces the collection of statistics about the ahead-of-time compilation of functions and bindings to Cpp by qmlcachegen. This is done by having qmlcachegen save an aotstats file for every qml file it compiles. This file contains, for every function and binding, whether the Cpp codegen was successful, its duration and a potential error message Task-number: QTBUG-124667 Change-Id: Iba9a72be04f6642688533a3ae12ea687296c85e1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>