<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/qml/jsruntime/qv4identifiertable.cpp, branch 5.15.17</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 'v5.15.16-lts' into tqtc/lts-5.15-opensource</title>
<updated>2024-11-08T13:36:12+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2024-11-08T13:36:12+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=abe4729ea8db32124c36dc33fc32eb629df03043'/>
<id>abe4729ea8db32124c36dc33fc32eb629df03043</id>
<content type='text'>
Qt 5.15.16-lts release

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

Change-Id: I2892ad4097deaec565b10357ca61be10048a7c81
</pre>
</div>
</content>
</entry>
<entry>
<title>Context properties: Don't trigger an assert for numeric names</title>
<updated>2023-09-12T05:33:45+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2023-07-24T09:50:47+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=9189ea15fa44fb072fc0a7737050074854d52527'/>
<id>9189ea15fa44fb072fc0a7737050074854d52527</id>
<content type='text'>
The logic in our IdentifierHash assumes that every entry is a
StringOrSymbol; however, IdentifierTable::asProperyKey will convert keys
that look like numbers to ArrayIndex instead.
This is noramlly what we want, and not an issue, except for
setContextPropery where the user can pass an arbitrary string that is
not necessarily a valid identifier. In an ideal world, we would just
disallow such identifiers, but for backward compatibility change the
code to handle this case (avoiding a Qt internal assert).
We only need to modify the QString overloads, as those are the only ones
that interact with unsanitized user input.
A later commit will modify setContextPropery to warn if the key is
numeric.

Fixes: QTBUG-115319
Change-Id: Ifc4e4d2bc99321836e6976c4cbd0c5ff687b430c
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit b2b90c7cf5cb5205f2c5b374f7332252205385e8)
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The logic in our IdentifierHash assumes that every entry is a
StringOrSymbol; however, IdentifierTable::asProperyKey will convert keys
that look like numbers to ArrayIndex instead.
This is noramlly what we want, and not an issue, except for
setContextPropery where the user can pass an arbitrary string that is
not necessarily a valid identifier. In an ideal world, we would just
disallow such identifiers, but for backward compatibility change the
code to handle this case (avoiding a Qt internal assert).
We only need to modify the QString overloads, as those are the only ones
that interact with unsanitized user input.
A later commit will modify setContextPropery to warn if the key is
numeric.

Fixes: QTBUG-115319
Change-Id: Ifc4e4d2bc99321836e6976c4cbd0c5ff687b430c
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit b2b90c7cf5cb5205f2c5b374f7332252205385e8)
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Update commercial license headers"</title>
<updated>2021-03-24T14:55:37+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2021-03-18T12:46:04+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=4bb06cfba94bcc9ddf30d968a227d00479d475b7'/>
<id>4bb06cfba94bcc9ddf30d968a227d00479d475b7</id>
<content type='text'>
This reverts commit 7b1331c789df0ac12d7cf5aa5f8967b8651a4cfa.

Revert of commercial license headers is required for Qt 5.15.3
opensource release.

Task-number: QTBUG-91108
Change-Id: I47eb004523bdb3beb16e9fd51e40da6f738f9f34
Reviewed-by: Jukka Jokiniva &lt;jukka.jokiniva@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 7b1331c789df0ac12d7cf5aa5f8967b8651a4cfa.

Revert of commercial license headers is required for Qt 5.15.3
opensource release.

Task-number: QTBUG-91108
Change-Id: I47eb004523bdb3beb16e9fd51e40da6f738f9f34
Reviewed-by: Jukka Jokiniva &lt;jukka.jokiniva@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Update commercial license headers</title>
<updated>2021-02-02T14:34:24+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2021-01-22T15:42:05+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=7b1331c789df0ac12d7cf5aa5f8967b8651a4cfa'/>
<id>7b1331c789df0ac12d7cf5aa5f8967b8651a4cfa</id>
<content type='text'>
Updated header.COMM to the files in tqtc-qtdeclarative.
Examples, documentation files or tests are not updated.

The commercial license header may contain some
additional lines so that its line count equals with
the earlier license header. Reason for this is that
some autotests use hard coded line numbers and a
change in the line count causes failures in tests.

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

The commercial license header may contain some
additional lines so that its line count equals with
the earlier license header. Reason for this is that
some autotests use hard coded line numbers and a
change in the line count causes failures in tests.

Task-number: QTQAINFRA-4161
Change-Id: Ic1d011aa01b1fe7242bcbbf72d5ab454d1015cf9
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Clean up QStringHash</title>
<updated>2019-04-30T08:24:42+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2019-04-26T12:23:21+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=a9886b4bf9ee80f9bc29bc5e8fd801705568f4da'/>
<id>a9886b4bf9ee80f9bc29bc5e8fd801705568f4da</id>
<content type='text'>
Make it completely inline, move the (4 times duplicated) primeForNumBits
function into its own file, address some warnings, move
QHashedString::compare into qhashedstring.cpp.

Change-Id: I778bb3d3e176cfec45eda9be9d7e5982585e6474
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make it completely inline, move the (4 times duplicated) primeForNumBits
function into its own file, address some warnings, move
QHashedString::compare into qhashedstring.cpp.

Change-Id: I778bb3d3e176cfec45eda9be9d7e5982585e6474
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/5.13' into dev</title>
<updated>2019-04-18T06:01:45+00:00</updated>
<author>
<name>Qt Forward Merge Bot</name>
<email>qt_forward_merge_bot@qt-project.org</email>
</author>
<published>2019-04-17T23:00:17+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=934f25028a232c9bccdb842f53fa67959cc8dffc'/>
<id>934f25028a232c9bccdb842f53fa67959cc8dffc</id>
<content type='text'>
 Conflicts:
	src/qml/qml/qqmlimport.cpp

Change-Id: I6add6267297ea50a646d43d212027a168dca8916
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 Conflicts:
	src/qml/qml/qqmlimport.cpp

Change-Id: I6add6267297ea50a646d43d212027a168dca8916
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't use UINT_MAX as invalid array index in PropertyKey</title>
<updated>2019-04-16T08:06:26+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2019-03-29T08:24:27+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=68b7a66a6e4d673d11aab44cb87b3f005cdff8ea'/>
<id>68b7a66a6e4d673d11aab44cb87b3f005cdff8ea</id>
<content type='text'>
Technically UINT_MAX is actually a valid array index, although that is
an academic problem right now. However, we do have a method
isArrayIndex() and should just use that to determine if a PropertyKey is
an array index.

Fixes: QTBUG-73893
Change-Id: I302e7894331ed2ab4717f7d8d6cc7d8974dabb4e
Reviewed-by: Erik Verbruggen &lt;erik.verbruggen@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Technically UINT_MAX is actually a valid array index, although that is
an academic problem right now. However, we do have a method
isArrayIndex() and should just use that to determine if a PropertyKey is
an array index.

Fixes: QTBUG-73893
Change-Id: I302e7894331ed2ab4717f7d8d6cc7d8974dabb4e
Reviewed-by: Erik Verbruggen &lt;erik.verbruggen@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Prevent CoW detaches from happening</title>
<updated>2019-04-15T10:00:51+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2018-09-18T08:19:18+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=2251fb3274ae66631be42d50508098f179f3c3e1'/>
<id>2251fb3274ae66631be42d50508098f179f3c3e1</id>
<content type='text'>
Change-Id: Ia42c0d732e0f6ccfa2c70b86edccd9eb471aac7c
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ia42c0d732e0f6ccfa2c70b86edccd9eb471aac7c
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve performance of IdentifierTable::sweep()</title>
<updated>2018-09-14T19:20:55+00:00</updated>
<author>
<name>Lars Knoll</name>
<email>lars.knoll@qt.io</email>
</author>
<published>2018-09-11T13:50:46+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=f44eb67f7dd922642a69834e18536c20e8218ba3'/>
<id>f44eb67f7dd922642a69834e18536c20e8218ba3</id>
<content type='text'>
Change-Id: I634f30ceb520af440c668e597a82b09b3c0024c9
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I634f30ceb520af440c668e597a82b09b3c0024c9
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Another try at properly fixing IdentifierTable::sweep()</title>
<updated>2018-08-31T13:57:08+00:00</updated>
<author>
<name>Lars Knoll</name>
<email>lars.knoll@qt.io</email>
</author>
<published>2018-08-31T11:13:57+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=bdb18e33e8b8c7e62514849378107a47a3667431'/>
<id>bdb18e33e8b8c7e62514849378107a47a3667431</id>
<content type='text'>
Sweeping the table in place is extremely tricky due to possible
holes and possible interleaving of identifiers with different
keys.

So do a straightforward algorithm instead, where we malloc a
new table and insert all marked identifiers into that new
table.

Change-Id: Id34f62f35408a505857d57d2e7e4811b335d5998
Task-number: QTBUG-70205
Reviewed-by: Erik Verbruggen &lt;erik.verbruggen@qt.io&gt;
Reviewed-by: Liang Qi &lt;liang.qi@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sweeping the table in place is extremely tricky due to possible
holes and possible interleaving of identifiers with different
keys.

So do a straightforward algorithm instead, where we malloc a
new table and insert all marked identifiers into that new
table.

Change-Id: Id34f62f35408a505857d57d2e7e4811b335d5998
Task-number: QTBUG-70205
Reviewed-by: Erik Verbruggen &lt;erik.verbruggen@qt.io&gt;
Reviewed-by: Liang Qi &lt;liang.qi@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
