<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/qml/parser/qqmljsengine_p.h, branch dev</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Mark security criticality for most files in qml/parser</title>
<updated>2025-09-16T13:17:46+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2025-05-19T08:14:03+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8d4ebd03d29e58ef83b286a12d3257bc9a3094d4'/>
<id>8d4ebd03d29e58ef83b286a12d3257bc9a3094d4</id>
<content type='text'>
Mark the lexing / parsing code as security critical, because they are
data parsers. While _running_ QML code needs to assume trusted input, we
probably should not have this restriction on the parser, so that tools
like qmllint, qmlls and qdoc can safely pass any file to the parser,
without having to worry about security implications.
The criticality extends to qqmljskeywords_p.h, as we do custom bounds
checking in the functions defined there.

qqmljsastfwd_p is marked as insignificant, as it only contains fowrard
declarations and no logic at all.

The other marked files have the default level (significant).

QUIP: 23
Task-number: QTBUG-136966
Pick-to: 6.10 6.9 6.8
Change-Id: I1e44f346d91d6d66c8e9632f0dec4a11fffc935a
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mark the lexing / parsing code as security critical, because they are
data parsers. While _running_ QML code needs to assume trusted input, we
probably should not have this restriction on the parser, so that tools
like qmllint, qmlls and qdoc can safely pass any file to the parser,
without having to worry about security implications.
The criticality extends to qqmljskeywords_p.h, as we do custom bounds
checking in the functions defined there.

qqmljsastfwd_p is marked as insignificant, as it only contains fowrard
declarations and no logic at all.

The other marked files have the default level (significant).

QUIP: 23
Task-number: QTBUG-136966
Pick-to: 6.10 6.9 6.8
Change-Id: I1e44f346d91d6d66c8e9632f0dec4a11fffc935a
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmlformat: change comment handling behavior</title>
<updated>2023-04-12T13:56:01+00:00</updated>
<author>
<name>Semih Yavuz</name>
<email>semih.yavuz@qt.io</email>
</author>
<published>2023-04-02T21:44:50+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=b5274d073bf015b764c12ce4121d3be6d2378cc9'/>
<id>b5274d073bf015b764c12ce4121d3be6d2378cc9</id>
<content type='text'>
Cumulative commit for adding zero-length comments in qmljsengine and
also handling of empty lines after comments.

qmljsengine only adds comments if the relavant comment length is larger
than 0. Allow adding zero length comments since empty comments might be
useful and required in some situations.

Unlike the  other formatting tools (clang-format, rustfmt) qmlformat
didnt respect the emptylines after comments and stick the comments to
the associated element. Change this behavior such that a newline/
blankline is added(but no more than one).

A few tests in qmldom/reformatter needed to be edited due to this new
behavior.

Pick-to: 6.5
Fixes: QTBUG-111231
Change-Id: I2fcdda0bfe569b7a1d19c4058e1604cb0d73291d
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cumulative commit for adding zero-length comments in qmljsengine and
also handling of empty lines after comments.

qmljsengine only adds comments if the relavant comment length is larger
than 0. Allow adding zero length comments since empty comments might be
useful and required in some situations.

Unlike the  other formatting tools (clang-format, rustfmt) qmlformat
didnt respect the emptylines after comments and stick the comments to
the associated element. Change this behavior such that a newline/
blankline is added(but no more than one).

A few tests in qmldom/reformatter needed to be edited due to this new
behavior.

Pick-to: 6.5
Fixes: QTBUG-111231
Change-Id: I2fcdda0bfe569b7a1d19c4058e1604cb0d73291d
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use SPDX license identifiers</title>
<updated>2022-06-11T06:05:15+00:00</updated>
<author>
<name>Lucie Gérard</name>
<email>lucie.gerard@qt.io</email>
</author>
<published>2022-05-13T13:12:05+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0dc4fd240a2897c5c443a0ef6d84c416843e4938'/>
<id>0dc4fd240a2897c5c443a0ef6d84c416843e4938</id>
<content type='text'>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make QQmlJS::Engine all inline and eliminate unused function</title>
<updated>2021-09-30T10:48:57+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2021-09-30T09:25:56+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=eae65ba6331a6b5066abe5c892de1bda423a8c76'/>
<id>eae65ba6331a6b5066abe5c892de1bda423a8c76</id>
<content type='text'>
Change-Id: If30dbc79ca686607ec023f3944f82093106823be
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Maximilian Goldstein &lt;max.goldstein@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: If30dbc79ca686607ec023f3944f82093106823be
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Maximilian Goldstein &lt;max.goldstein@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Port QtDeclarative from QStringRef to QStringView</title>
<updated>2020-06-16T20:46:16+00:00</updated>
<author>
<name>Karsten Heimrich</name>
<email>karsten.heimrich@qt.io</email>
</author>
<published>2020-06-16T08:23:19+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=1b10ce6a08edbc2ac7e8fd7e97e3fc691f2081df'/>
<id>1b10ce6a08edbc2ac7e8fd7e97e3fc691f2081df</id>
<content type='text'>
Task-number: QTBUG-84319
Change-Id: I2dcfb8a2db98282c7a1acdad1e6f4f949f26df15
Reviewed-by: Mårten Nordheim &lt;marten.nordheim@qt.io&gt;
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
Reviewed-by: Timur Pocheptsov &lt;timur.pocheptsov@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Task-number: QTBUG-84319
Change-Id: I2dcfb8a2db98282c7a1acdad1e6f4f949f26df15
Reviewed-by: Mårten Nordheim &lt;marten.nordheim@qt.io&gt;
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
Reviewed-by: Timur Pocheptsov &lt;timur.pocheptsov@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Restore offset/length in QQmlJS::DiagnosticMessage</title>
<updated>2020-03-02T09:35:50+00:00</updated>
<author>
<name>Simon Hausmann</name>
<email>simon.hausmann@qt.io</email>
</author>
<published>2020-02-27T09:49:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8ab237edf170f5b0482dccf5169868e5c7c47771'/>
<id>8ab237edf170f5b0482dccf5169868e5c7c47771</id>
<content type='text'>
This is needed in a few places outside of declarative, so this change
restores the loc member in DiagnosticMessage and moves
QQmlJS::AST::SourceLocation into common's QQmlJS namespace/directory.
QQmlError is unaffected and retains only line/column.

Amends d4d197d06279f9257647628f7e1ccc9ec763a6bb

Change-Id: Ifb9d344228e3c6e9e26fc4fe112686f9336ea2b2
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 needed in a few places outside of declarative, so this change
restores the loc member in DiagnosticMessage and moves
QQmlJS::AST::SourceLocation into common's QQmlJS namespace/directory.
QQmlError is unaffected and retains only line/column.

Amends d4d197d06279f9257647628f7e1ccc9ec763a6bb

Change-Id: Ifb9d344228e3c6e9e26fc4fe112686f9336ea2b2
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Move the memory pool into the common code</title>
<updated>2019-07-08T11:55:46+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2019-07-08T11:13:20+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=7811d69006d298dcbe2abff874b02dfa80d8bf80'/>
<id>7811d69006d298dcbe2abff874b02dfa80d8bf80</id>
<content type='text'>
We need it in both, the compiler and the runtime.

Change-Id: Iffacb9d150bf9eef6ef477bfd427dbac9bf49359
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need it in both, the compiler and the runtime.

Change-Id: Iffacb9d150bf9eef6ef477bfd427dbac9bf49359
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify errors and diagnostics</title>
<updated>2019-06-14T17:08:51+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2019-05-23T12:57:09+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=d4d197d06279f9257647628f7e1ccc9ec763a6bb'/>
<id>d4d197d06279f9257647628f7e1ccc9ec763a6bb</id>
<content type='text'>
We only need two classes to describe all possible diagnostics:

* A low-level private POD DiagnosticMessage. This is easily copied and
  passed around internally. It doesn't need to adhere to a stable API
  and it doesn't carry any extra baggage.

* The high-level public QQmlError with its stable interface. This can
  internally also use a DiagnosticMessage as storage.

Change-Id: I52be88d9b5d9855a661b8032b01eedb43a0fb0b3
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
 
 
 </content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We only need two classes to describe all possible diagnostics:

* A low-level private POD DiagnosticMessage. This is easily copied and
  passed around internally. It doesn't need to adhere to a stable API
  and it doesn't carry any extra baggage.

* The high-level public QQmlError with its stable interface. This can
  internally also use a DiagnosticMessage as storage.

Change-Id: I52be88d9b5d9855a661b8032b01eedb43a0fb0b3
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
 
 
 </pre>
</div>
</content>
</entry>
<entry>
<title>Eliminate QT_QML_BEGIN_NAMESPACE and QT_QML_END_NAMESPACE</title>
<updated>2019-03-22T14:35:14+00:00</updated>
<author>
<name>Shawn Rutledge</name>
<email>shawn.rutledge@qt.io</email>
</author>
<published>2019-03-21T15:15:03+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=3980ccf785462dc7b2cb53f72790638eb9e7b8c0'/>
<id>3980ccf785462dc7b2cb53f72790638eb9e7b8c0</id>
<content type='text'>
These are equivalent to the usual namespace macros.

Change-Id: I3891397511e29694fe508414e77eb8483b877e03
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are equivalent to the usual namespace macros.

Change-Id: I3891397511e29694fe508414e77eb8483b877e03
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add an extra diagnostic kind "Hint"</title>
<updated>2018-10-24T12:43:29+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2018-10-22T12:02:09+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=6383908085e1b78b2ef92fb6a8665709ef48a519'/>
<id>6383908085e1b78b2ef92fb6a8665709ef48a519</id>
<content type='text'>
We will want to use that for things like "Don't do this if you want to
use Qt Quick Designer on the file".

Change-Id: I50fefd9dc8896fe98612519dfc8fa765abea2677
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We will want to use that for things like "Don't do this if you want to
use Qt Quick Designer on the file".

Change-Id: I50fefd9dc8896fe98612519dfc8fa765abea2677
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
