[qt/qt/qtdeclarative]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/qt/qtdeclarative Pushed by mirror-service into branch 'dev'. Changed from 2246bedfd49906ac918bbb0452d4f835b020cc7a to abae97a8dc25474f59f80388cb573d1665a072ab Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 6fd46684e04c0ae897bf32a8b38d67ea62bb423c by Olivier De Cannière (on behalf of Jeff Heller) on 31/07/2026 at 16:03.. QmlCompiler: Fix qmllint exhausting memory on some QML files merge(QQmlJSRegisterContent, QQmlJSRegisterContent) is tree-recursive: both mergeScopes() calls in its return statement recurse into it, so the same (a, b) pair is recomputed along 2^depth paths, allocating a conversion each time. Some inputs therefore make qmllint unusable rather than merely slow. On one 613-line file it reached 313 GB and was OOM-killed after 622 s, having emitted 36 of that file's 122 warnings. Memoize merge() on the (a, b) pair, handing out an O(1) clone on a hit. That shares more registers, but is safe: - merge() is pure. - The cache stores and returns clones, so no entry is reachable by anything that could edit it. Callers need that anyway: contents compare by identity, and mergeRegister() relies on a merge of two different contents being freshly tracked. - Clones are shallow, but no pass edits a register deeper than one level. adjustType(), storeType() and generalizeType() only ever take a register handed to a pass, or its own storage()/original() chain. - QQmlJSTypePropagator::run() clears the cache. It is the only caller, and the blowup is within one function. The new test takes 2.3 GB and 11 s unmemoized, 26 MB and 0.03 s memoized, doubling with every added line. 6.8 is unaffected: its scopes are QQmlJSScope::ConstPtr, so merge() does not recurse into itself. 6.9 is the first affected branch. Pick-to: 6.12 6.11 Change-Id: Id65649a837eef59d850b8b8a4ec0412244582488 Reviewed-by: Olivier De Cannière <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/6fd46684e04c0ae897bf32a8b38d67ea62bb423c Git commit 6518f9d886ba657e5e3c98f17a891bb46b07ad3f by Sami Shalayel on 31/07/2026 at 16:03.. tst_qmlpreviewtool: add missing dependencies Make the tst_qmlpreviewtool CMake target build qmlpreview and qml if available. Also depend on the test helpers This avoids running the test on outdated qmlpreview, qml, or test helper binaries. Change-Id: I98cf669f5210de7f380e68afc54c7b39c373934a Reviewed-by: Alexandru Croitor <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/6518f9d886ba657e5e3c98f17a891bb46b07ad3f Git commit abae97a8dc25474f59f80388cb573d1665a072ab by Sami Shalayel on 31/07/2026 at 16:03.. qmlls: fix deprecation warning during compilation It seems that globalMatch is deprecated in favour of globalMatchView. Change-Id: Ic69f57da8095188aec770e2aa1a8feef7b0e5469 Reviewed-by: Olivier De Cannière <[email protected]> https://invent.kde.org/qt/qt/qtdeclarative/-/commit/abae97a8dc25474f59f80388cb573d1665a072ab