<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/qml/jsruntime/qv4object.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>Merge tag 'v6.5.7-lts' into tqtc/lts-6.5-opensource</title>
<updated>2025-10-09T11:56:44+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2025-10-09T11:56:44+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=844f9b9b376838bcb44324984876f8bf99d85d38'/>
<id>844f9b9b376838bcb44324984876f8bf99d85d38</id>
<content type='text'>
Qt 6.5.7-lts release

Conflicts solved:
	dependencies.yaml

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

Conflicts solved:
	dependencies.yaml

Change-Id: I8fbe9c1606825b726adf95e69a4fa86e2196f4e8
</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>Merge tag 'v6.5.5-lts' into tqtc/lts-6.5-opensource</title>
<updated>2025-01-29T14:12:28+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2025-01-29T14:12:28+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=7ac842cba18be081ac835bf40ac475ec4c47d30b'/>
<id>7ac842cba18be081ac835bf40ac475ec4c47d30b</id>
<content type='text'>
Qt 6.5.5-lts release

Conflicts solved:
	dependencies.yaml
	src/quick/doc/snippets/qml/treeview/qml-customdelegate.qml

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

Conflicts solved:
	dependencies.yaml
	src/quick/doc/snippets/qml/treeview/qml-customdelegate.qml

Change-Id: Ifa297315fa0e6e70d9f26312f9183da4769d18fc
</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>Fix Proxy / QV4::Lookup interaction</title>
<updated>2024-06-19T12:46:05+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2024-06-13T09:01:29+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=cbfc7778324d9fd473a79e4ee76387cd9b8569a2'/>
<id>cbfc7778324d9fd473a79e4ee76387cd9b8569a2</id>
<content type='text'>
If an object is proxied, we can't use the optimized getters for the
lookup, as those would bypass the custom proxy logic.

Fix this by always using the fallback code path when encountering a
Proxy object.

Fixes: QTBUG-112320
Change-Id: Idd8d4f2cd0134ada010448d470cfc68e765ef125
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit 2e8acbdf16bd9948c5e433d56024d93ac051baca)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
(cherry picked from commit e2952a1e8a291d5f99226d584ade7eaf17ff3cde)
(cherry picked from commit 45637f5ec67d4a276e2cbc55fed6506d79596059)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If an object is proxied, we can't use the optimized getters for the
lookup, as those would bypass the custom proxy logic.

Fix this by always using the fallback code path when encountering a
Proxy object.

Fixes: QTBUG-112320
Change-Id: Idd8d4f2cd0134ada010448d470cfc68e765ef125
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit 2e8acbdf16bd9948c5e433d56024d93ac051baca)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
(cherry picked from commit e2952a1e8a291d5f99226d584ade7eaf17ff3cde)
(cherry picked from commit 45637f5ec67d4a276e2cbc55fed6506d79596059)
</pre>
</div>
</content>
</entry>
<entry>
<title>setInternalClass: Correctly handle deleted properties</title>
<updated>2024-02-01T12:56:18+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2023-03-06T08:24:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=912886afe4d58130eb218342843fe85e15128f17'/>
<id>912886afe4d58130eb218342843fe85e15128f17</id>
<content type='text'>
When an IC was rebuilt, we must not set members that were deleted,
otherwise we'll trigger an assertion. Since the nameMap has to match the
data we still allocate memory for such members and fill it with
undefined. This could be avoided with some deeper refactoring, but a
simple solution is to be preferred because this needs to be picked back
all the way to 6.2.

Pick-to: 6.2
Fixes: QTBUG-111729
Change-Id: I730d6b4634d989191434225600a08cf0208e72f8
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
(cherry picked from commit 642d531e42fb233709155f8c8feb7d429c48db38)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
(cherry picked from commit 308f785c7842267a8744381148bd82b21c536033)
(cherry picked from commit f17168ef874f05b4ea57088cadcc2d5a8fd2c5a0)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When an IC was rebuilt, we must not set members that were deleted,
otherwise we'll trigger an assertion. Since the nameMap has to match the
data we still allocate memory for such members and fill it with
undefined. This could be avoided with some deeper refactoring, but a
simple solution is to be preferred because this needs to be picked back
all the way to 6.2.

Pick-to: 6.2
Fixes: QTBUG-111729
Change-Id: I730d6b4634d989191434225600a08cf0208e72f8
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
(cherry picked from commit 642d531e42fb233709155f8c8feb7d429c48db38)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
(cherry picked from commit 308f785c7842267a8744381148bd82b21c536033)
(cherry picked from commit f17168ef874f05b4ea57088cadcc2d5a8fd2c5a0)
</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>Recursively write back value types and sequences</title>
<updated>2022-10-19T18:32:01+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-10-05T15:02:03+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=a824a6f060ec3a0000d7349649a3ab9e0570ecaa'/>
<id>a824a6f060ec3a0000d7349649a3ab9e0570ecaa</id>
<content type='text'>
Both types have functionality to write themselves back to the properties
they were loaded from on change, but so far we could not nest those
writes.

[ChangeLog][QtQml] You can now assign to properties of nested value
types and to elements of containers from QML functions. You cannot,
however, take references of such values and elements. This is in
contrast to non-nested value types and the containers themselves.
However, passing references of value types and containers around
generally leads to very confusing effects. Don't do this.

Fixes: QTBUG-99766
Change-Id: I74cb89e5c3d733b0b61e42969d617b2ecc1562f4
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Both types have functionality to write themselves back to the properties
they were loaded from on change, but so far we could not nest those
writes.

[ChangeLog][QtQml] You can now assign to properties of nested value
types and to elements of containers from QML functions. You cannot,
however, take references of such values and elements. This is in
contrast to non-nested value types and the containers themselves.
However, passing references of value types and containers around
generally leads to very confusing effects. Don't do this.

Fixes: QTBUG-99766
Change-Id: I74cb89e5c3d733b0b61e42969d617b2ecc1562f4
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Port from container::count() and length() to size()</title>
<updated>2022-10-07T21:38:48+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@qt.io</email>
</author>
<published>2022-10-05T05:29:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=958cd3ee1094a068b6d0ff27c73a4b3caff088ad'/>
<id>958cd3ee1094a068b6d0ff27c73a4b3caff088ad</id>
<content type='text'>
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8:

  auto QtContainerClass = anyOf(
      expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o),
      expr(hasType(namedDecl(hasAnyName(&lt;classes&gt;)))).bind(o));
  makeRule(cxxMemberCallExpr(on(QtContainerClass),
                             callee(cxxMethodDecl(hasAnyName({"count", "length"),
                                                  parameterCountIs(0))))),
           changeTo(cat(access(o, cat("size"), "()"))),
           cat("use 'size()' instead of 'count()/length()'"))

a.k.a qt-port-to-std-compatible-api with config Scope: 'Container',
with the extended set of container classes recognized.

Change-Id: Idb1f75dfe2323bd1d9e8b4d58d54f1b4b80c7ed7
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8:

  auto QtContainerClass = anyOf(
      expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o),
      expr(hasType(namedDecl(hasAnyName(&lt;classes&gt;)))).bind(o));
  makeRule(cxxMemberCallExpr(on(QtContainerClass),
                             callee(cxxMethodDecl(hasAnyName({"count", "length"),
                                                  parameterCountIs(0))))),
           changeTo(cat(access(o, cat("size"), "()"))),
           cat("use 'size()' instead of 'count()/length()'"))

a.k.a qt-port-to-std-compatible-api with config Scope: 'Container',
with the extended set of container classes recognized.

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