<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/qml/jsruntime/qv4executablecompilationunit.cpp, branch 6.5</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Merge tag 'v6.5.10-lts' into tqtc/lts-6.5-opensource</title>
<updated>2026-08-20T12:41:16+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2026-08-20T12:41:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ae5bbc665633ea99eb26800eb5a8978d2213a2c2'/>
<id>ae5bbc665633ea99eb26800eb5a8978d2213a2c2</id>
<content type='text'>
Qt 6.5.10-lts release

Conflicts solved:
	dependencies.yaml

Change-Id: I30aa1cd656455861044ba1c3c8075f52d20dc2e8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Qt 6.5.10-lts release

Conflicts solved:
	dependencies.yaml

Change-Id: I30aa1cd656455861044ba1c3c8075f52d20dc2e8
</pre>
</div>
</content>
</entry>
<entry>
<title>QtQml: Avoid potential gc issues</title>
<updated>2025-05-28T11:39:08+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2024-12-12T13:39:37+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=dbb4cf6fe900365ce3db40f76028d1d77ba6e365'/>
<id>dbb4cf6fe900365ce3db40f76028d1d77ba6e365</id>
<content type='text'>
Implicitly constructing a value from a ReturnedValue muddies the
responsibility for ensuring that the gc can find the object.

With this change, we disable the implicit conversion. The expectation
for lifetime management is now:
- If a ReturnedValue is stored on the C++ stack, it must be put into a
  QV4::Scoped class (or there should be a comment why not doing so is
  safe). Passing a ReturnedValue to a function should no longer be
  possible, unless the function takes a ReturnedValue, in which case the
  expectation is that it stores the value in a place where it can be
  seen by the gc, before doing anything that could trigger a gc run.
  Using Value::fromReturnedValue can still be used to pass a Value on,
  but in that case, the expectation is that there is a comment which
  explains why this is safe.
- If a QV4::Value is obtained from a function call, it ought to be
  stored in a ScopedValue, too. We currently can't enforce this easily,
  so this should be checked during code review. A possible way forward
  would be to disallow returning Values, but that would be a larger
  change, and is deferred to the future.
- If a functions has a QV4::Value parameter, it's the callers'
  responsibilty to ensure that the gc can find it.

Fixes: QTBUG-131961
Change-Id: Iea055589d35a5f1ac36fe376d4389eb81de87961
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit a5feec81934ab0b074d6a8c7621b591851f6b544)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
(cherry picked from commit 64526c5e47a5f7217bced8f5affe29b5f1dc0c99)
(cherry picked from commit 1f4193570be1cbff72e103ce9d7633ebef87431e)
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implicitly constructing a value from a ReturnedValue muddies the
responsibility for ensuring that the gc can find the object.

With this change, we disable the implicit conversion. The expectation
for lifetime management is now:
- If a ReturnedValue is stored on the C++ stack, it must be put into a
  QV4::Scoped class (or there should be a comment why not doing so is
  safe). Passing a ReturnedValue to a function should no longer be
  possible, unless the function takes a ReturnedValue, in which case the
  expectation is that it stores the value in a place where it can be
  seen by the gc, before doing anything that could trigger a gc run.
  Using Value::fromReturnedValue can still be used to pass a Value on,
  but in that case, the expectation is that there is a comment which
  explains why this is safe.
- If a QV4::Value is obtained from a function call, it ought to be
  stored in a ScopedValue, too. We currently can't enforce this easily,
  so this should be checked during code review. A possible way forward
  would be to disallow returning Values, but that would be a larger
  change, and is deferred to the future.
- If a functions has a QV4::Value parameter, it's the callers'
  responsibilty to ensure that the gc can find it.

Fixes: QTBUG-131961
Change-Id: Iea055589d35a5f1ac36fe376d4389eb81de87961
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit a5feec81934ab0b074d6a8c7621b591851f6b544)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
(cherry picked from commit 64526c5e47a5f7217bced8f5affe29b5f1dc0c99)
(cherry picked from commit 1f4193570be1cbff72e103ce9d7633ebef87431e)
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Update commercial SPDX-License-Identifier"</title>
<updated>2025-01-03T17:25:16+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2025-01-03T05:44:42+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=eee1fcc18b8460f5aa581cc4e41db3ed8ec78fbb'/>
<id>eee1fcc18b8460f5aa581cc4e41db3ed8ec78fbb</id>
<content type='text'>
This reverts commit da5933f22c00270ac9083a089686e5c54e0057da.

Revert of commercial SPDX license identifiers is required for the
Qt 6.5.x opensource releases, Qt 6.5.4 onwards.

Change-Id: Ic056fb761f242af0ec4c883ecb35d50804c1c67c
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit da5933f22c00270ac9083a089686e5c54e0057da.

Revert of commercial SPDX license identifiers is required for the
Qt 6.5.x opensource releases, Qt 6.5.4 onwards.

Change-Id: Ic056fb761f242af0ec4c883ecb35d50804c1c67c
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QtQml: Fix some problems with deep aliases</title>
<updated>2023-11-15T11:42:50+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2023-11-07T14:16:32+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=dc4bd4fb3f98967f65dc510e5d42831e1cd3b4f1'/>
<id>dc4bd4fb3f98967f65dc510e5d42831e1cd3b4f1</id>
<content type='text'>
We cannot get the property cache for an inline component the usual way
during type compilation. We have to ask the compilation unit for it.
This will usually not work in 6.6 or earlier since the compilation unit
does not know the IC's metatypes. However, it shouldn't crash.

Guard against still not being able to retrieve the property cache for
any reason. Abort the compilation rather than crashing.

Also, unify the setting of property attributes. Those should really work
the same way everywhere.

Finally, disallow writing aliases to value type properties where the
property holding the value type itself is not writable.

Pick-to: 6.2
Task-number: QTBUG-115579
Change-Id: I029eb56a9a390085d0c696a787a64c48acf0d620
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 3ea55bf398412d373daab9c92b1498f45de70e96)
(cherry picked from commit 7326d41bef7c0ba362e66f9b3668b81d3e74716a)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We cannot get the property cache for an inline component the usual way
during type compilation. We have to ask the compilation unit for it.
This will usually not work in 6.6 or earlier since the compilation unit
does not know the IC's metatypes. However, it shouldn't crash.

Guard against still not being able to retrieve the property cache for
any reason. Abort the compilation rather than crashing.

Also, unify the setting of property attributes. Those should really work
the same way everywhere.

Finally, disallow writing aliases to value type properties where the
property holding the value type itself is not writable.

Pick-to: 6.2
Task-number: QTBUG-115579
Change-Id: I029eb56a9a390085d0c696a787a64c48acf0d620
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 3ea55bf398412d373daab9c92b1498f45de70e96)
(cherry picked from commit 7326d41bef7c0ba362e66f9b3668b81d3e74716a)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix compile time qsTranslate with empty context</title>
<updated>2023-10-25T12:11:18+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2023-10-23T16:26:38+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=5b63179a227a18550b934686ff2f5cc847efadec'/>
<id>5b63179a227a18550b934686ff2f5cc847efadec</id>
<content type='text'>
An empty context is to be passed as-is. We shall not replace it with the
file context context. Since the TranslationData struct has a field for
the context, we need to invent a "no context" value we use for the
methods that don't allow you to set a context (e.g. qsTr, qsTrId). We
cannot use 0 because that is the empty string which is a valid context
now.

Amends commit 9cfc19faf5d1ce2b9626914ab4528998b072385d.

Fixes: QTBUG-118469
Change-Id: I160c512f42aba4a8ae2fc8860cdf4e50c53d9d3e
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 5fc4c09a958c5f78aa9f69cee2c45eef9a5166b8)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
(cherry picked from commit a95e6dd76a54874d22ff883ea5d04d80543eae93)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
An empty context is to be passed as-is. We shall not replace it with the
file context context. Since the TranslationData struct has a field for
the context, we need to invent a "no context" value we use for the
methods that don't allow you to set a context (e.g. qsTr, qsTrId). We
cannot use 0 because that is the empty string which is a valid context
now.

Amends commit 9cfc19faf5d1ce2b9626914ab4528998b072385d.

Fixes: QTBUG-118469
Change-Id: I160c512f42aba4a8ae2fc8860cdf4e50c53d9d3e
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 5fc4c09a958c5f78aa9f69cee2c45eef9a5166b8)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
(cherry picked from commit a95e6dd76a54874d22ff883ea5d04d80543eae93)
</pre>
</div>
</content>
</entry>
<entry>
<title>Update commercial SPDX-License-Identifier</title>
<updated>2023-10-23T09:34:14+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2023-10-19T18:47:43+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=da5933f22c00270ac9083a089686e5c54e0057da'/>
<id>da5933f22c00270ac9083a089686e5c54e0057da</id>
<content type='text'>
Updated the commercial SPDX-License-Identifier to
the files in tqtc-qtdeclarative. Examples, tests, or
documentation files were not updated.

Task-number: QTQAINFRA-5900
Change-Id: I74e2ac15b270b503edc80369b126913dd2ec33e1
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updated the commercial SPDX-License-Identifier to
the files in tqtc-qtdeclarative. Examples, tests, or
documentation files were not updated.

Task-number: QTQAINFRA-5900
Change-Id: I74e2ac15b270b503edc80369b126913dd2ec33e1
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor the usage of icutils::Node</title>
<updated>2023-04-25T05:39:10+00:00</updated>
<author>
<name>Amir Masoud Abdol</name>
<email>amir.abdol@qt.io</email>
</author>
<published>2023-04-24T08:44:19+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=2a31b22143d1199cc1793593dbd9feb6b65fc6c7'/>
<id>2a31b22143d1199cc1793593dbd9feb6b65fc6c7</id>
<content type='text'>
In Unity Build, on OpenSUSE, for some reason compiler confuses
the Node with an `int`. This refactoring resolves the issue by moving
the type into the `icutils` namespace.

Task-number: QTBUG-109394
Change-Id: Id379b9aff21b29115d4503791debd658f034a0cd
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit c8384198243b693bcab3e2e5e9f95c2694c476da)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In Unity Build, on OpenSUSE, for some reason compiler confuses
the Node with an `int`. This refactoring resolves the issue by moving
the type into the `icutils` namespace.

Task-number: QTBUG-109394
Change-Id: Id379b9aff21b29115d4503791debd658f034a0cd
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit c8384198243b693bcab3e2e5e9f95c2694c476da)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QtQml: Improve handling of CU's sourceFileIndex</title>
<updated>2023-03-28T18:06:39+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2023-03-27T08:36:36+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=b17eb7409777b4040d03ae53e332898182e830dd'/>
<id>b17eb7409777b4040d03ae53e332898182e830dd</id>
<content type='text'>
In the unlikely case that we get a corrupted CU from a cache file and it
still passes the header verification we don't want it to access invalid
memory when checking the file name.

We also generally want to use uint as index into the string table. A
signed integer makes no sense here.

Coverity-Id: 310389
Change-Id: I12e9b8f39e1d3c68fd701c1ef4f54845ab8c3c12
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 583b8269beaf3b607877c055574f2cc6044c826c)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the unlikely case that we get a corrupted CU from a cache file and it
still passes the header verification we don't want it to access invalid
memory when checking the file name.

We also generally want to use uint as index into the string table. A
signed integer makes no sense here.

Coverity-Id: 310389
Change-Id: I12e9b8f39e1d3c68fd701c1ef4f54845ab8c3c12
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 583b8269beaf3b607877c055574f2cc6044c826c)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QML: Invalidate any existing cache files when saving a CU to disk</title>
<updated>2023-02-11T06:52:46+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2023-02-10T08:07:38+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=a48015f05e8272ff7ac1b307b9477540800bd94f'/>
<id>a48015f05e8272ff7ac1b307b9477540800bd94f</id>
<content type='text'>
Otherwise we just re-load the old cache file next time. That's clearly
not intended.

Fixes: QTBUG-111078
Change-Id: Ia65b46880eca2b6e8c4792a09f20716125beada3
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 0a5eff09203ebb2547431de689d9c07e6c97f636)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Otherwise we just re-load the old cache file next time. That's clearly
not intended.

Fixes: QTBUG-111078
Change-Id: Ia65b46880eca2b6e8c4792a09f20716125beada3
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 0a5eff09203ebb2547431de689d9c07e6c97f636)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Qml: Analyze qsTranslate at compile time</title>
<updated>2022-10-13T20:13:12+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-10-12T12:52:40+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=9cfc19faf5d1ce2b9626914ab4528998b072385d'/>
<id>9cfc19faf5d1ce2b9626914ab4528998b072385d</id>
<content type='text'>
We generate translation bindings for all the other translation functions
already. We can just as well generate a translation binding for this
one, too.

Fixes: QTBUG-107536
Change-Id: I851f03c26510b6d450aa78f5d7a1f0142d3a81aa
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We generate translation bindings for all the other translation functions
already. We can just as well generate a translation binding for this
one, too.

Fixes: QTBUG-107536
Change-Id: I851f03c26510b6d450aa78f5d7a1f0142d3a81aa
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
