<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git, branch 5.8</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>V4: Fix issues with very small loops</title>
<updated>2017-04-18T07:53:48+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2017-04-06T13:42:51+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8d0d1b11e381130dec12f46b959c3107c3f47160'/>
<id>8d0d1b11e381130dec12f46b959c3107c3f47160</id>
<content type='text'>
Loops consisting of just a single basic block (e.g. a do-while loop with
no nested loops or if statements) have a back-edge to themselves. There
were 2 problems:
- loop detection would create LoopInfo for any loop header referred to
  by blocks inside the loop (and a 1 block loop doesn't have body
  blocks), nor would it mark the loop header as such
- when splitting critical edges, the newly inserted block would not be
  marked as part of the loop

This is a problem specifically for 1 block loops: the block ends with
a CJUMP, so the back-edge is a critical edge. So the new block inserted
by edge splitting wouldn't be marked as belonging to the loop.

The end result was that the life-time intervals for temporaries that
are defined before the loop, but that are used inside the loop, and not
after the loop, would have their life-time ended before the loop ends
(instead of spanning the whole loop, *including* the back-edge). This
in turns could lead to the stack/register allocator re-using the storage
for that temporary, resulting in strange things happening.

Task-number: QTBUG-59012
Change-Id: Ic946c73913711272efea2151cb85350412ca2fde
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Loops consisting of just a single basic block (e.g. a do-while loop with
no nested loops or if statements) have a back-edge to themselves. There
were 2 problems:
- loop detection would create LoopInfo for any loop header referred to
  by blocks inside the loop (and a 1 block loop doesn't have body
  blocks), nor would it mark the loop header as such
- when splitting critical edges, the newly inserted block would not be
  marked as part of the loop

This is a problem specifically for 1 block loops: the block ends with
a CJUMP, so the back-edge is a critical edge. So the new block inserted
by edge splitting wouldn't be marked as belonging to the loop.

The end result was that the life-time intervals for temporaries that
are defined before the loop, but that are used inside the loop, and not
after the loop, would have their life-time ended before the loop ends
(instead of spanning the whole loop, *including* the back-edge). This
in turns could lead to the stack/register allocator re-using the storage
for that temporary, resulting in strange things happening.

Task-number: QTBUG-59012
Change-Id: Ic946c73913711272efea2151cb85350412ca2fde
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fix QtQmlDevTools in framework builds in a better way</title>
<updated>2017-04-11T16:48:03+00:00</updated>
<author>
<name>Oswald Buddenhagen</name>
<email>oswald.buddenhagen@qt.io</email>
</author>
<published>2016-12-23T19:11:12+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=671ada303aaa16228511eee8032778fea0b84915'/>
<id>671ada303aaa16228511eee8032778fea0b84915</id>
<content type='text'>
6767fcfaf basically gave up and gave the module an own set of headers.
however, we now have improved infrastructure for borrowing headers.
while this may look uglier, the maintenance burden is lower, and it's
consistent with other bootstrapped modules.

Change-Id: I6ddcbbc01fa085a3c6bf333b03a9fdfc19061836
Reviewed-by: Joerg Bornemann &lt;joerg.bornemann@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
6767fcfaf basically gave up and gave the module an own set of headers.
however, we now have improved infrastructure for borrowing headers.
while this may look uglier, the maintenance burden is lower, and it's
consistent with other bootstrapped modules.

Change-Id: I6ddcbbc01fa085a3c6bf333b03a9fdfc19061836
Reviewed-by: Joerg Bornemann &lt;joerg.bornemann@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>switch to new way to refer to libdl</title>
<updated>2017-04-11T16:47:59+00:00</updated>
<author>
<name>Oswald Buddenhagen</name>
<email>oswald.buddenhagen@qt.io</email>
</author>
<published>2017-02-13T08:45:01+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=88920863e082744728266c314e5dcffa83f9762b'/>
<id>88920863e082744728266c314e5dcffa83f9762b</id>
<content type='text'>
note that the condition is insufficient (it should include
qtConfig(dlopen)), but this is just consistent with the c++ code.

Change-Id: I4b447ff504539e4dc07ece3d696e5a85b2f4cc50
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
note that the condition is insufficient (it should include
qtConfig(dlopen)), but this is just consistent with the c++ code.

Change-Id: I4b447ff504539e4dc07ece3d696e5a85b2f4cc50
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid access to declarativeData when isDeletingChildren is set</title>
<updated>2017-04-10T17:05:50+00:00</updated>
<author>
<name>Bernhard Übelacker</name>
<email>bernhardu@mailbox.org</email>
</author>
<published>2017-02-12T13:10:43+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=d438be92dd7068fef94ce98e1ec039fe0ef4f3b3'/>
<id>d438be92dd7068fef94ce98e1ec039fe0ef4f3b3</id>
<content type='text'>
QObject's members declarativeData and currentChildBeingDeleted share
the same memory because they are inside a union.
This leads to a problem when destructing mixed Widgets and QML objects.
Then in QObjectPrivate::deleteChildren the member currentChildBeingDeleted
is set. But unfortunatley QObjectWrapper::destroyObject retrieves
the same pointer via declarativeData.

This patch should avoid this by disallowing retrieval of declarativeData
when isDeletingChildren is set (or at least adds a Q_ASSERT).

Task-number: QTBUG-57714
Change-Id: I9ee02f79be3e8226c30076c24859b49b8dcfaecf
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
QObject's members declarativeData and currentChildBeingDeleted share
the same memory because they are inside a union.
This leads to a problem when destructing mixed Widgets and QML objects.
Then in QObjectPrivate::deleteChildren the member currentChildBeingDeleted
is set. But unfortunatley QObjectWrapper::destroyObject retrieves
the same pointer via declarativeData.

This patch should avoid this by disallowing retrieval of declarativeData
when isDeletingChildren is set (or at least adds a Q_ASSERT).

Task-number: QTBUG-57714
Change-Id: I9ee02f79be3e8226c30076c24859b49b8dcfaecf
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix hidpi support for opengl window grabbing</title>
<updated>2017-04-09T16:18:28+00:00</updated>
<author>
<name>Filipe Azevedo</name>
<email>filipe.azevedo@kdab.com</email>
</author>
<published>2016-12-14T13:25:23+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=617d6dc2017f49a84e4aeb15a40d78462be62326'/>
<id>617d6dc2017f49a84e4aeb15a40d78462be62326</id>
<content type='text'>
Now set the QImage devicePixelRatio so the content is correct on all
screens.

Task-number: QTBUG-53795
Change-Id: If94edf901da1285afe9bb847b8973d568a2b7082
Reviewed-by: Morten Johan Sørvig &lt;morten.sorvig@qt.io&gt;
Reviewed-by: Laszlo Agocs &lt;laszlo.agocs@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now set the QImage devicePixelRatio so the content is correct on all
screens.

Task-number: QTBUG-53795
Change-Id: If94edf901da1285afe9bb847b8973d568a2b7082
Reviewed-by: Morten Johan Sørvig &lt;morten.sorvig@qt.io&gt;
Reviewed-by: Laszlo Agocs &lt;laszlo.agocs@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add missing override specifiers</title>
<updated>2017-04-03T15:28:36+00:00</updated>
<author>
<name>Christian Strømme</name>
<email>christian.stromme@qt.io</email>
</author>
<published>2017-03-23T12:35:06+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ab0c47e5ef03eab9c80246e4d5c1af53a29ab0e1'/>
<id>ab0c47e5ef03eab9c80246e4d5c1af53a29ab0e1</id>
<content type='text'>
Build failed on Android when using clang.

error: '&lt;name&gt;' overrides a member function but is not marked 'override'
      [-Werror,-Winconsistent-missing-override]

Change-Id: I080f8145b5a1c12bacf99f9c08f9e78271e5837a
Reviewed-by: Frederik Gladhorn &lt;frederik.gladhorn@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Build failed on Android when using clang.

error: '&lt;name&gt;' overrides a member function but is not marked 'override'
      [-Werror,-Winconsistent-missing-override]

Change-Id: I080f8145b5a1c12bacf99f9c08f9e78271e5837a
Reviewed-by: Frederik Gladhorn &lt;frederik.gladhorn@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Prospective fix for static builds on Windows with QtQuickCompiler</title>
<updated>2017-03-28T11:21:26+00:00</updated>
<author>
<name>Simon Hausmann</name>
<email>simon.hausmann@qt.io</email>
</author>
<published>2017-03-28T08:24:26+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=3caf24c514e7b5dfe62dc656d48282f3816dd6cc'/>
<id>3caf24c514e7b5dfe62dc656d48282f3816dd6cc</id>
<content type='text'>
Don't define QML_PARSER_EXPORT to dllimport when doing static builds.

Task-number: QTBUG-59767
Change-Id: I24acb2c51f54a0cde8d2e50a935ede876e5eb5b7
Reviewed-by: Andy Shaw &lt;andy.shaw@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't define QML_PARSER_EXPORT to dllimport when doing static builds.

Task-number: QTBUG-59767
Change-Id: I24acb2c51f54a0cde8d2e50a935ede876e5eb5b7
Reviewed-by: Andy Shaw &lt;andy.shaw@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix build with GCC 7</title>
<updated>2017-03-22T12:33:51+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@kdab.com</email>
</author>
<published>2017-03-22T10:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=29bf17dee1497972152566af6916fd0a20b784ee'/>
<id>29bf17dee1497972152566af6916fd0a20b784ee</id>
<content type='text'>
GCC 7 warns about preprocessor macros expanding to defined(),
which the masm config macros use pervasively.

Fix by suppressing the warning (-Wexpansion-to-defined).

Task-number: QTBUG-59647
Change-Id: I9220741cf594824472bffc2305b994b311e55832
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GCC 7 warns about preprocessor macros expanding to defined(),
which the masm config macros use pervasively.

Fix by suppressing the warning (-Wexpansion-to-defined).

Task-number: QTBUG-59647
Change-Id: I9220741cf594824472bffc2305b994b311e55832
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix touch event delivery in childMouseEventFilter</title>
<updated>2017-03-16T12:30:30+00:00</updated>
<author>
<name>Frederik Gladhorn</name>
<email>frederik.gladhorn@qt.io</email>
</author>
<published>2017-03-14T09:33:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=c2ca2cbf04071ffb3aee6af8d5ab9084dfa1c091'/>
<id>c2ca2cbf04071ffb3aee6af8d5ab9084dfa1c091</id>
<content type='text'>
Since moving to pointer events, we would deliver all events inside the
filter function. The expected behavior though is that only points that
are already grabbed, pressed inside or grabbed by children would be seen
by the filter function.
This broke using multiple touch aware items at the same time (2 pinch
areas for example).

Change-Id: I42a430f196ebbcf0a83a6dc8aca319e433ad52ad
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since moving to pointer events, we would deliver all events inside the
filter function. The expected behavior though is that only points that
are already grabbed, pressed inside or grabbed by children would be seen
by the filter function.
This broke using multiple touch aware items at the same time (2 pinch
areas for example).

Change-Id: I42a430f196ebbcf0a83a6dc8aca319e433ad52ad
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Doc: Removed non-working reimplementation suggestions</title>
<updated>2017-03-15T08:01:32+00:00</updated>
<author>
<name>Christoph Sterz</name>
<email>christoph.sterz@kdab.com</email>
</author>
<published>2015-12-18T12:18:46+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8675bb6b5a4721aa4d94dcb3cb98dbed061c164f'/>
<id>8675bb6b5a4721aa4d94dcb3cb98dbed061c164f</id>
<content type='text'>
QSGSimpleMaterialShader::uniformMatrixName() and
QSGSimpleMaterialShader::uniformOpacityName() cannot be reimplemented
since they are non-virtual.

Removed the suggestion, so nobody is tempted to do so.
Added a Remark in the header to fix towards intended behavior in Qt6.

Change-Id: Id23c8d54728095f143f1d0e0520590303cff91a0
Reviewed-by: Giuseppe D'Angelo &lt;giuseppe.dangelo@kdab.com&gt;
Reviewed-by: Leena Miettinen &lt;riitta-leena.miettinen@qt.io&gt;
Reviewed-by: Jan Arne Petersen &lt;jan.petersen@kdab.com&gt;
Reviewed-by: Gunnar Sletta &lt;gunnar@crimson.no&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
QSGSimpleMaterialShader::uniformMatrixName() and
QSGSimpleMaterialShader::uniformOpacityName() cannot be reimplemented
since they are non-virtual.

Removed the suggestion, so nobody is tempted to do so.
Added a Remark in the header to fix towards intended behavior in Qt6.

Change-Id: Id23c8d54728095f143f1d0e0520590303cff91a0
Reviewed-by: Giuseppe D'Angelo &lt;giuseppe.dangelo@kdab.com&gt;
Reviewed-by: Leena Miettinen &lt;riitta-leena.miettinen@qt.io&gt;
Reviewed-by: Jan Arne Petersen &lt;jan.petersen@kdab.com&gt;
Reviewed-by: Gunnar Sletta &lt;gunnar@crimson.no&gt;
</pre>
</div>
</content>
</entry>
</feed>
