Merge lp:~timo-jyrinki/kubuntu-packaging/qtdeclarative-for-u-series-multiple-fixes into lp:~kubuntu-packagers/kubuntu-packaging/qtdeclarative-opensource-src

Proposed by Timo Jyrinki on 2014-04-23
Status: Merged
Approved by: Timo Jyrinki on 2014-04-28
Approved revision: 151
Merged at revision: 144
Proposed branch: lp:~timo-jyrinki/kubuntu-packaging/qtdeclarative-for-u-series-multiple-fixes
Merge into: lp:~kubuntu-packagers/kubuntu-packaging/qtdeclarative-opensource-src
Diff against target: 931 lines (+684/-29)
13 files modified
debian/changelog (+50/-0)
debian/control (+156/-26)
debian/copyright (+20/-0)
debian/libqt5qml5.symbols (+2/-1)
debian/mark_private_symbols.sh (+20/-0)
debian/patches/Fix-marking-of-prototype-objects-in-chain.patch (+89/-0)
debian/patches/Implement-proper-support-for-layoutChange-in-QQmlDel.patch (+158/-0)
debian/patches/QQuickItemView-QQuickPathView-Fix-creation-of-delega.patch (+128/-0)
debian/patches/V4-regalloc-fix-register-spill-choice-under-high-pre.patch (+50/-0)
debian/patches/series (+4/-0)
debian/qml-module-qtquick-dialogs.install (+5/-1)
debian/qml-module-qtquick-dialogs.lintian-overrides (+1/-1)
debian/source/lintian-overrides (+1/-0)
To merge this branch: bzr merge lp:~timo-jyrinki/kubuntu-packaging/qtdeclarative-for-u-series-multiple-fixes
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve on 2014-04-28
Kubuntu Packagers 2014-04-23 Pending
Review via email: mp+216821@code.launchpad.net

Commit message

* Depend conditionally on libgl1 (LP: #1278871)
* debian/patches/Fix-marking-of-prototype-objects-in-chain.patch
  - Fix a crasher with deleted QQmlCompiledData as suggested by upstream
    (LP: #1304248)
* debian/patches/QQuickItemView-QQuickPathView-Fix-creation-of-delega.patch:
  - Fix "Carousel doesn't re-render properly after scrolling"
    (LP: #1307578)
* debian/patches/Implement-proper-support-for-layoutChange-in-QQmlDel.patch:
  - Fix a performance hit when editing sorted lists (LP: #1303746)

To post a comment you must log in.
148. By Timo Jyrinki on 2014-04-25

* debian/patches/V4-regalloc-fix-register-spill-choice-under-high-pre.patch:
  - Fix differing JS results on AMD64/i386 (LP: #1312571)

149. By Timo Jyrinki on 2014-04-25

Updated symbols

150. By Timo Jyrinki on 2014-04-28

* Resync with Debian including renamed QML packages
* Rename QML modules as such, creating the proper transitional packages and
  renaming the necessary files:
  - qtdeclarative5-dialogs-plugin → qml-module-qtquick-dialogs.
  - qtdeclarative5-folderlistmodel-plugin →
    qml-module-qt-labs-folderlistmodel.
  - qtdeclarative5-localstorage-plugin → qml-module-qtquick-localstorage.
  - qtdeclarative5-models-plugin → qml-model-qtqml-models2.
  - qtdeclarative5-particles-plugin → qml-module-qtquick-particles2.
  - qtdeclarative5-privatewidgets-plugin →
    qml-module-qtquick-privatewidgets.
  - qtdeclarative5-qtquick2-plugin → qml-module-qtquick2.
  - qtdeclarative5-settings-plugin → qml-module-qt-labs-settings.
  - qtdeclarative5-test-plugin → qml-module-qttest.
  - qtdeclarative5-window-plugin → qml-module-qtquick-window2.
  - qtdeclarative5-xmllistmodel-plugin → qml-module-qtquick-xmllistmodel.
* Override lintian for duplicated long description on transitional packages.
* Add qml-module-qtquick2 as qml-module-qttest dependency.
* Update symbols files with buildd's logs.
* Upload to unstable.
* Add license to mark_private_symbols.sh and corresponding entry in
  debian/copyright.
* Update symbols files with buildd's logs.

151. By Timo Jyrinki on 2014-04-28

Add bug number.

Resync with Debian including renamed QML packages (LP: #1313547)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2014-04-10 06:00:35 +0000
3+++ debian/changelog 2014-04-28 07:48:46 +0000
4@@ -1,3 +1,53 @@
5+qtdeclarative-opensource-src (5.2.1-5ubuntu1) UNRELEASED; urgency=medium
6+
7+ * Resync with Debian including renamed QML packages (LP: #1313547)
8+ * Depend conditionally on libgl1 (LP: #1278871)
9+ * debian/patches/Fix-marking-of-prototype-objects-in-chain.patch
10+ - Fix a crasher with deleted QQmlCompiledData as suggested by upstream
11+ (LP: #1304248)
12+ * debian/patches/QQuickItemView-QQuickPathView-Fix-creation-of-delega.patch:
13+ - Fix "Carousel doesn't re-render properly after scrolling"
14+ (LP: #1307578)
15+ * debian/patches/Implement-proper-support-for-layoutChange-in-QQmlDel.patch:
16+ - Fix a performance hit when editing sorted lists (LP: #1303746)
17+ * debian/patches/V4-regalloc-fix-register-spill-choice-under-high-pre.patch:
18+ - Fix differing JS results on AMD64/i386 (LP: #1312571)
19+ * Updated symbols
20+
21+ -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Mon, 28 Apr 2014 07:35:22 +0000
22+
23+qtdeclarative-opensource-src (5.2.1-5) unstable; urgency=medium
24+
25+ * Rename QML modules as such, creating the proper transitional packages and
26+ renaming the necessary files:
27+ - qtdeclarative5-dialogs-plugin → qml-module-qtquick-dialogs.
28+ - qtdeclarative5-folderlistmodel-plugin →
29+ qml-module-qt-labs-folderlistmodel.
30+ - qtdeclarative5-localstorage-plugin → qml-module-qtquick-localstorage.
31+ - qtdeclarative5-models-plugin → qml-model-qtqml-models2.
32+ - qtdeclarative5-particles-plugin → qml-module-qtquick-particles2.
33+ - qtdeclarative5-privatewidgets-plugin →
34+ qml-module-qtquick-privatewidgets.
35+ - qtdeclarative5-qtquick2-plugin → qml-module-qtquick2.
36+ - qtdeclarative5-settings-plugin → qml-module-qt-labs-settings.
37+ - qtdeclarative5-test-plugin → qml-module-qttest.
38+ - qtdeclarative5-window-plugin → qml-module-qtquick-window2.
39+ - qtdeclarative5-xmllistmodel-plugin → qml-module-qtquick-xmllistmodel.
40+ * Override lintian for duplicated long description on transitional packages.
41+ * Add qml-module-qtquick2 as qml-module-qttest dependency.
42+ * Update symbols files with buildd's logs.
43+
44+ -- Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org> Thu, 03 Apr 2014 10:04:59 -0300
45+
46+qtdeclarative-opensource-src (5.2.1-4) unstable; urgency=medium
47+
48+ * Upload to unstable.
49+ * Add license to mark_private_symbols.sh and corresponding entry in
50+ debian/copyright.
51+ * Update symbols files with buildd's logs.
52+
53+ -- Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org> Mon, 24 Mar 2014 21:45:21 -0300
54+
55 qtdeclarative-opensource-src (5.2.1-3ubuntu15) trusty; urgency=medium
56
57 * Fix_QSmoothedAnimation_sometimes_getting_stuck.patch
58
59=== modified file 'debian/control'
60--- debian/control 2014-04-10 05:58:37 +0000
61+++ debian/control 2014-04-28 07:48:46 +0000
62@@ -74,112 +74,230 @@
63 This package contains the Qt Quick Test library for QtDeclarative module.
64
65 Package: qtdeclarative5-dialogs-plugin
66+Architecture: all
67+Section: oldlibs
68+Depends: qml-module-qtquick-dialogs, ${misc:Depends}
69+Description: transitional dummy package for Qt 5 Dialogs QML module
70+ Qt is a cross-platform C++ application framework. Qt's primary feature
71+ is its rich set of widgets that provide standard GUI functionality.
72+ .
73+ This is a transitional dummy package which can be safely removed.
74+
75+Package: qml-module-qtquick-dialogs
76 Architecture: any
77 Multi-Arch: same
78 Pre-Depends: ${misc:Pre-Depends}
79-Depends: qtdeclarative5-privatewidgets-plugin,
80- ${misc:Depends},
81- ${shlibs:Depends}
82-Description: Qt 5 Dialogs QML plugin
83+Depends: qml-module-qtquick-privatewidgets, ${misc:Depends}, ${shlibs:Depends}
84+Breaks: qtdeclarative5-dialogs-plugin (<< 5.2.1-5~)
85+Replaces: qtdeclarative5-dialogs-plugin (<< 5.2.1-5~)
86+Description: Qt 5 Dialogs QML module
87 Qt is a cross-platform C++ application framework. Qt's primary feature
88 is its rich set of widgets that provide standard GUI functionality.
89 .
90 The Dialogs module provides FileDialog and ColorDialog types.
91
92 Package: qtdeclarative5-folderlistmodel-plugin
93+Architecture: all
94+Section: oldlibs
95+Depends: qml-module-qt-labs-folderlistmodel, ${misc:Depends}
96+Description: transitional dummy package for Qt 5 folderlistmodel QML module
97+ Qt is a cross-platform C++ application framework. Qt's primary feature
98+ is its rich set of widgets that provide standard GUI functionality.
99+ .
100+ This is a transitional dummy package which can be safely removed.
101+
102+Package: qml-module-qt-labs-folderlistmodel
103 Architecture: any
104 Multi-Arch: same
105 Pre-Depends: ${misc:Pre-Depends}
106 Depends: ${misc:Depends}, ${shlibs:Depends}
107-Description: Qt 5 folderlistmodel QML plugin
108+Breaks: qtdeclarative5-folderlistmodel-plugin (<< 5.2.1-5~)
109+Replaces: qtdeclarative5-folderlistmodel-plugin (<< 5.2.1-5~)
110+Description: Qt 5 folderlistmodel QML module
111 Qt is a cross-platform C++ application framework. Qt's primary feature
112 is its rich set of widgets that provide standard GUI functionality.
113 .
114 The FolderListModel provides a model of the contents of a file system folder.
115
116 Package: qtdeclarative5-localstorage-plugin
117+Architecture: all
118+Section: oldlibs
119+Depends: qml-module-qtquick-localstorage, ${misc:Depends}
120+Description: transitional dummy package for Qt 5 localstorage QML module
121+ Qt is a cross-platform C++ application framework. Qt's primary feature
122+ is its rich set of widgets that provide standard GUI functionality.
123+ .
124+ This is a transitional dummy package which can be safely removed.
125+
126+Package: qml-module-qtquick-localstorage
127 Architecture: any
128 Multi-Arch: same
129 Pre-Depends: ${misc:Pre-Depends}
130 Depends: libqt5sql5-sqlite, ${misc:Depends}, ${shlibs:Depends}
131-Description: Qt 5 localstorage QML plugin
132+Breaks: qtdeclarative5-localstorage-plugin (<< 5.2.1-5~)
133+Replaces: qtdeclarative5-localstorage-plugin (<< 5.2.1-5~)
134+Description: Qt 5 localstorage QML module
135 Qt is a cross-platform C++ application framework. Qt's primary feature
136 is its rich set of widgets that provide standard GUI functionality.
137 .
138 This is a singleton type for reading and writing to SQLite databases.
139
140 Package: qtdeclarative5-models-plugin
141+Architecture: all
142+Section: oldlibs
143+Depends: qml-model-qtqml-models2, ${misc:Depends}
144+Description: transitional dummy package for Qt 5 Models2 QML module
145+ Qt is a cross-platform C++ application framework. Qt's primary feature
146+ is its rich set of widgets that provide standard GUI functionality.
147+ .
148+ This is a transitional dummy package which can be safely removed.
149+
150+Package: qml-model-qtqml-models2
151 Architecture: any
152 Multi-Arch: same
153 Pre-Depends: ${misc:Pre-Depends}
154 Depends: ${misc:Depends}, ${shlibs:Depends}
155-Description: Qt 5 Models QML plugin
156+Breaks: qtdeclarative5-models-plugin (<< 5.2.1-5~)
157+Replaces: qtdeclarative5-models-plugin (<< 5.2.1-5~)
158+Description: Qt 5 Models2 QML module
159 Qt is a cross-platform C++ application framework. Qt's primary feature
160 is its rich set of widgets that provide standard GUI functionality.
161 .
162 The Models provides types previously found in Qt Quick module.
163
164 Package: qtdeclarative5-particles-plugin
165+Architecture: all
166+Section: oldlibs
167+Depends: qml-module-qtquick-particles2, ${misc:Depends}
168+Description: transitional dummy package for Qt 5 particles 2 QML module
169+ Qt is a cross-platform C++ application framework. Qt's primary feature
170+ is its rich set of widgets that provide standard GUI functionality.
171+ .
172+ This is a transitional dummy package which can be safely removed.
173+
174+Package: qml-module-qtquick-particles2
175 Architecture: any
176 Multi-Arch: same
177 Pre-Depends: ${misc:Pre-Depends}
178 Depends: ${misc:Depends}, ${shlibs:Depends}
179-Description: Qt 5 particles QML plugin
180+Breaks: qtdeclarative5-particles-plugin (<< 5.2.1-5~)
181+Replaces: qtdeclarative5-particles-plugin (<< 5.2.1-5~)
182+Description: Qt 5 particles 2 QML module
183 Qt is a cross-platform C++ application framework. Qt's primary feature
184 is its rich set of widgets that provide standard GUI functionality.
185 .
186 This QML module contains a particle system for Qt Quick.
187
188 Package: qtdeclarative5-privatewidgets-plugin
189+Architecture: all
190+Section: oldlibs
191+Depends: qml-module-qtquick-privatewidgets, ${misc:Depends}
192+Description: transitional dummy package for Qt 5 Private Widgets QML module
193+ Qt is a cross-platform C++ application framework. Qt's primary feature
194+ is its rich set of widgets that provide standard GUI functionality.
195+ .
196+ This is a transitional dummy package which can be safely removed.
197+
198+Package: qml-module-qtquick-privatewidgets
199 Architecture: any
200 Multi-Arch: same
201 Pre-Depends: ${misc:Pre-Depends}
202 Depends: ${misc:Depends}, ${shlibs:Depends}
203-Description: Qt 5 Private Widgets QML plugin
204+Breaks: qtdeclarative5-privatewidgets-plugin (<< 5.2.1-5~)
205+Replaces: qtdeclarative5-privatewidgets-plugin (<< 5.2.1-5~)
206+Description: Qt 5 Private Widgets QML module
207 Qt is a cross-platform C++ application framework. Qt's primary feature
208 is its rich set of widgets that provide standard GUI functionality.
209 .
210- This package contains the Private Widgets plugin.
211+ This package contains the Private Widgets module.
212
213 Package: qtdeclarative5-qtquick2-plugin
214+Architecture: all
215+Section: oldlibs
216+Depends: qml-module-qtquick2, ${misc:Depends}
217+Description: transitional dummy package Qt 5 Qt Quick 2 QML module
218+ Qt is a cross-platform C++ application framework. Qt's primary feature
219+ is its rich set of widgets that provide standard GUI functionality.
220+ .
221+ This is a transitional dummy package which can be safely removed.
222+
223+Package: qml-module-qtquick2
224 Architecture: any
225 Multi-Arch: same
226 Pre-Depends: ${misc:Pre-Depends}
227-Depends: libgl1-mesa-dri, ${misc:Depends}, ${shlibs:Depends}
228-Description: Qt 5 Qt Quick 2 QML plugin
229+Depends: libgl1-mesa-dri | libgl1, ${misc:Depends}, ${shlibs:Depends}
230+Breaks: qtdeclarative5-qtquick2-plugin (<< 5.2.1-5~)
231+Replaces: qtdeclarative5-qtquick2-plugin (<< 5.2.1-5~)
232+Description: Qt 5 Qt Quick 2 QML module
233 Qt is a cross-platform C++ application framework. Qt's primary feature
234 is its rich set of widgets that provide standard GUI functionality.
235 .
236- This package contains the Qt Quick 2 QML plugin for Qt declarative.
237+ This package contains the Qt Quick 2 QML module for Qt declarative.
238
239 Package: qtdeclarative5-settings-plugin
240+Architecture: all
241+Section: oldlibs
242+Depends: qml-module-qt-labs-settings, ${misc:Depends}
243+Description: transitional dummy package for Qt 5 settings QML module
244+ Qt is a cross-platform C++ application framework. Qt's primary feature
245+ is its rich set of widgets that provide standard GUI functionality.
246+ .
247+ This is a transitional dummy package which can be safely removed.
248+
249+Package: qml-module-qt-labs-settings
250 Architecture: any
251 Multi-Arch: same
252 Pre-Depends: ${misc:Pre-Depends}
253 Depends: ${misc:Depends}, ${shlibs:Depends}
254-Description: Qt 5 settings QML plugin
255+Breaks: qtdeclarative5-settings-plugin (<< 5.2.1-5~)
256+Replaces: qtdeclarative5-settings-plugin (<< 5.2.1-5~)
257+Description: Qt 5 settings QML module
258 Qt is a cross-platform C++ application framework. Qt's primary feature
259 is its rich set of widgets that provide standard GUI functionality.
260 .
261- This package contains the settings QML plugin for Qt declarative.
262+ This package contains the settings QML module for Qt declarative.
263
264 Package: qtdeclarative5-test-plugin
265+Architecture: all
266+Section: oldlibs
267+Depends: qml-module-qttest, ${misc:Depends}
268+Description: transitional dummy package for Qt 5 test QML module
269+ Qt is a cross-platform C++ application framework. Qt's primary feature
270+ is its rich set of widgets that provide standard GUI functionality.
271+ .
272+ This is a transitional dummy package which can be safely removed.
273+
274+Package: qml-module-qttest
275 Architecture: any
276 Multi-Arch: same
277 Pre-Depends: ${misc:Pre-Depends}
278-Depends: ${misc:Depends}, ${shlibs:Depends}
279-Description: Qt 5 test QML plugin
280+Depends: qml-module-qtquick2, ${misc:Depends}, ${shlibs:Depends}
281+Breaks: qtdeclarative5-test-plugin (<< 5.2.1-5~)
282+Replaces: qtdeclarative5-test-plugin (<< 5.2.1-5~)
283+Description: Qt 5 test QML module
284 Qt is a cross-platform C++ application framework. Qt's primary feature
285 is its rich set of widgets that provide standard GUI functionality.
286 .
287- This package contains the test QML plugin for Qt declarative.
288+ This package contains the test QML module for Qt declarative.
289
290 Package: qtdeclarative5-window-plugin
291+Architecture: all
292+Section: oldlibs
293+Depends: qml-module-qtquick-window2, ${misc:Depends}
294+Description: transitional dummy package for Qt 5 window 2 QML module
295+ Qt is a cross-platform C++ application framework. Qt's primary feature
296+ is its rich set of widgets that provide standard GUI functionality.
297+ .
298+ This is a transitional dummy package which can be safely removed.
299+
300+Package: qml-module-qtquick-window2
301 Architecture: any
302 Multi-Arch: same
303 Pre-Depends: ${misc:Pre-Depends}
304 Depends: ${misc:Depends}, ${shlibs:Depends}
305-Description: Qt 5 window QML plugin
306+Breaks: qtdeclarative5-window-plugin (<< 5.2.1-5~)
307+Replaces: qtdeclarative5-window-plugin (<< 5.2.1-5~)
308+Description: Qt 5 window 2 QML module
309 Qt is a cross-platform C++ application framework. Qt's primary feature
310 is its rich set of widgets that provide standard GUI functionality.
311 .
312@@ -187,11 +305,23 @@
313 accessing screen information.
314
315 Package: qtdeclarative5-xmllistmodel-plugin
316+Architecture: all
317+Section: oldlibs
318+Depends: qml-module-qtquick-xmllistmodel, ${misc:Depends}
319+Description: transitional dummy package for Qt 5 xmllistmodel QML module
320+ Qt is a cross-platform C++ application framework. Qt's primary feature
321+ is its rich set of widgets that provide standard GUI functionality.
322+ .
323+ This is a transitional dummy package which can be safely removed.
324+
325+Package: qml-module-qtquick-xmllistmodel
326 Architecture: any
327 Multi-Arch: same
328 Pre-Depends: ${misc:Pre-Depends}
329 Depends: ${misc:Depends}, ${shlibs:Depends}
330-Description: Qt 5 xmllistmodel QML plugin
331+Breaks: qtdeclarative5-xmllistmodel-plugin (<< 5.2.1-5~)
332+Replaces: qtdeclarative5-xmllistmodel-plugin (<< 5.2.1-5~)
333+Description: Qt 5 xmllistmodel QML module
334 Qt is a cross-platform C++ application framework. Qt's primary feature
335 is its rich set of widgets that provide standard GUI functionality.
336 .
337@@ -271,12 +401,12 @@
338 Multi-Arch: same
339 Section: x11
340 Pre-Depends: ${misc:Pre-Depends}
341-Depends: qtdeclarative5-dialogs-plugin,
342- qtdeclarative5-localstorage-plugin,
343- qtdeclarative5-models-plugin,
344- qtdeclarative5-particles-plugin,
345- qtdeclarative5-test-plugin,
346- qtdeclarative5-xmllistmodel-plugin,
347+Depends: qml-model-qtqml-models2,
348+ qml-module-qtquick-dialogs,
349+ qml-module-qtquick-localstorage,
350+ qml-module-qtquick-particles2,
351+ qml-module-qtquick-xmllistmodel,
352+ qml-module-qttest,
353 ${misc:Depends},
354 ${shlibs:Depends}
355 Description: Qt 5 declarative examples
356
357=== modified file 'debian/copyright'
358--- debian/copyright 2013-12-17 09:01:49 +0000
359+++ debian/copyright 2014-04-28 07:48:46 +0000
360@@ -8,6 +8,10 @@
361 1994-2008 Trolltech ASA.
362 License: LGPL-2.1 with Digia Qt LGPL Exception 1.1 or GPL-3
363
364+Files: debian/mark_private_symbols.sh
365+Copyright: 2013 Sune Vuorela <sune@debian.org>
366+License: Expat
367+
368 Files: debian/*
369 Copyright: 2007-2012 Fathi Boudra <fabo@debian.org>
370 2007-2012 Sune Vuorela <debian@pusling.com>
371@@ -754,3 +758,19 @@
372 On Debian systems, the full text of the GNU General Public
373 License version 2 can be found in the file
374 `/usr/share/common-licenses/GPL-2'.
375+
376+License: Expat
377+ Permission is hereby granted, free of charge, to any person obtaining
378+ a copy of this software and associated documentation files (the
379+ "Software"), to deal in the Software without restriction, including
380+ without limitation the rights to use, copy, modify, merge, publish,
381+ distribute, sublicense, and/or sell copies of the Software, and to
382+ permit persons to whom the Software is furnished to do so, subject to
383+ the following conditions:
384+ .
385+ The above copyright notice and this permission notice shall be included
386+ in all copies or substantial portions of the Software.
387+ .
388+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
389+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
390+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
391
392=== modified file 'debian/libqt5qml5.symbols'
393--- debian/libqt5qml5.symbols 2014-03-10 16:35:49 +0000
394+++ debian/libqt5qml5.symbols 2014-04-28 07:48:46 +0000
395@@ -590,7 +590,7 @@
396 _ZN17QQmlDelegateModel15_q_rowsInsertedERK11QModelIndexii@Base 5.1.0 1
397 _ZN17QQmlDelegateModel15setWatchedRolesE5QListI10QByteArrayE@Base 5.1.0 1
398 _ZN17QQmlDelegateModel16_q_itemsInsertedEii@Base 5.1.0 1
399- _ZN17QQmlDelegateModel16_q_layoutChangedEv@Base 5.1.0 1
400+ _ZN17QQmlDelegateModel16_q_layoutChangedERK5QListI21QPersistentModelIndexEN18QAbstractItemModel16LayoutChangeHintE@Base 5.2.1 1
401 _ZN17QQmlDelegateModel16resetFilterGroupEv@Base 5.1.0 1
402 _ZN17QQmlDelegateModel16rootIndexChangedEv@Base 5.1.0 1
403 _ZN17QQmlDelegateModel16staticMetaObjectE@Base 5.1.0 1
404@@ -599,6 +599,7 @@
405 _ZN17QQmlDelegateModel20defaultGroupsChangedEv@Base 5.1.0 1
406 _ZN17QQmlDelegateModel21qmlAttachedPropertiesEP7QObject@Base 5.1.0 1
407 _ZN17QQmlDelegateModel23_q_rowsAboutToBeRemovedERK11QModelIndexii@Base 5.1.0 1
408+ _ZN17QQmlDelegateModel25_q_layoutAboutToBeChangedERK5QListI21QPersistentModelIndexEN18QAbstractItemModel16LayoutChangeHintE@Base 5.2.1 1
409 _ZN17QQmlDelegateModel5eventEP6QEvent@Base 5.1.0 1
410 _ZN17QQmlDelegateModel5itemsEv@Base 5.1.0 1
411 _ZN17QQmlDelegateModel5partsEv@Base 5.1.0 1
412
413=== modified file 'debian/mark_private_symbols.sh'
414--- debian/mark_private_symbols.sh 2013-08-30 11:58:43 +0000
415+++ debian/mark_private_symbols.sh 2014-04-28 07:48:46 +0000
416@@ -1,4 +1,24 @@
417 #! /bin/sh
418+# Copyright (c) 2013 Sune Vuorela <sune@debian.org>
419+#
420+# Permission is hereby granted, free of charge, to any person obtaining
421+# a copy of this software and associated documentation files (the
422+# "Software"), to deal in the Software without restriction, including
423+# without limitation the rights to use, copy, modify, merge, publish,
424+# distribute, sublicense, and/or sell copies of the Software, and to
425+# permit persons to whom the Software is furnished to do so, subject to
426+# the following conditions:
427+#
428+# The above copyright notice and this permission notice shall be included
429+# in all copies or substantial portions of the Software.
430+#
431+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
432+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
433+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
434+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
435+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
436+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
437+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
438
439 PRIVATE_HEADERS=qtdeclarative5-private-dev/usr/include
440
441
442=== added file 'debian/patches/Fix-marking-of-prototype-objects-in-chain.patch'
443--- debian/patches/Fix-marking-of-prototype-objects-in-chain.patch 1970-01-01 00:00:00 +0000
444+++ debian/patches/Fix-marking-of-prototype-objects-in-chain.patch 2014-04-28 07:48:46 +0000
445@@ -0,0 +1,89 @@
446+From 0d90b1d646d9f443f071f474911cd7a8495d523b Mon Sep 17 00:00:00 2001
447+From: Simon Hausmann <simon.hausmann@digia.com>
448+Date: Mon, 7 Apr 2014 11:20:03 +0200
449+Subject: [PATCH] Fix marking of prototype objects in chain
450+
451+With a real prototype chain it can happen that an internal class' prototype's
452+class itself has a prototype. Therefore the first transition on the empty class
453+is a PrototypeChange one, but the class the transition leads to may have
454+PrototypeChange transitions itself, which weren't marked.
455+
456+There are multiple solutions to this, but this patch is the minimal fix by
457+recursing fully through the internal class tree. That way it's easier to
458+back-port the fix also into 5.2.x based branches.
459+
460+Task-number: QTBUG-37834
461+
462+Change-Id: I901b13a2663fbad5844003ca5752f2f304de320c
463+---
464+ src/qml/jsruntime/qv4internalclass.cpp | 15 ++++++---------
465+ tests/auto/qml/qjsengine/tst_qjsengine.cpp | 18 ++++++++++++++++++
466+ 2 files changed, 24 insertions(+), 9 deletions(-)
467+
468+diff --git a/src/qml/jsruntime/qv4internalclass.cpp b/src/qml/jsruntime/qv4internalclass.cpp
469+index 4fe8f0b..dab137b 100644
470+--- a/src/qml/jsruntime/qv4internalclass.cpp
471++++ b/src/qml/jsruntime/qv4internalclass.cpp
472+@@ -458,17 +458,14 @@ void InternalClass::destroy()
473+ void InternalClass::markObjects()
474+ {
475+ // all prototype changes are done on the empty class
476+- Q_ASSERT(!prototype);
477++ Q_ASSERT(!prototype || this != engine->emptyClass);
478++
479++ if (prototype)
480++ prototype->mark(engine);
481+
482+ for (QHash<Transition, InternalClass *>::ConstIterator it = transitions.begin(), end = transitions.end();
483+- it != end; ++it) {
484+- if (it.key().flags == Transition::VTableChange) {
485+- it.value()->markObjects();
486+- } else if (it.key().flags == Transition::ProtoChange) {
487+- Q_ASSERT(it.value()->prototype);
488+- it.value()->prototype->mark(engine);
489+- }
490+- }
491++ it != end; ++it)
492++ it.value()->markObjects();
493+ }
494+
495+ QT_END_NAMESPACE
496+diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
497+index 518d3e9..7ef6bd9 100644
498+--- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
499++++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
500+@@ -151,6 +151,8 @@ private slots:
501+ void functionDeclarationsInConditionals();
502+
503+ void arrayPop_QTBUG_35979();
504++ void prototypeChainGc();
505++
506+ };
507+
508+ tst_QJSEngine::tst_QJSEngine()
509+@@ -2942,6 +2944,22 @@ void tst_QJSEngine::indexedAccesses()
510+ QCOMPARE(result.toString(), QString("1,3"));
511+ }
512+
513++void tst_QJSEngine::prototypeChainGc()
514++{
515++ QJSEngine engine;
516++
517++ QJSValue getProto = engine.evaluate("Object.getPrototypeOf");
518++
519++ QJSValue factory = engine.evaluate("function() { return Object.create(Object.create({})); }");
520++ QVERIFY(factory.isCallable());
521++ QJSValue obj = factory.call();
522++ engine.collectGarbage();
523++
524++ QJSValue proto = getProto.call(QJSValueList() << obj);
525++ proto = getProto.call(QJSValueList() << proto);
526++ QVERIFY(proto.isObject());
527++}
528++
529+ QTEST_MAIN(tst_QJSEngine)
530+
531+ #include "tst_qjsengine.moc"
532+--
533+1.9.1
534+
535
536=== added file 'debian/patches/Implement-proper-support-for-layoutChange-in-QQmlDel.patch'
537--- debian/patches/Implement-proper-support-for-layoutChange-in-QQmlDel.patch 1970-01-01 00:00:00 +0000
538+++ debian/patches/Implement-proper-support-for-layoutChange-in-QQmlDel.patch 2014-04-28 07:48:46 +0000
539@@ -0,0 +1,158 @@
540+From 4d4bd2ac531f0456135a1077f5fceea3517cd3cd Mon Sep 17 00:00:00 2001
541+From: =?UTF-8?q?Daniel=20Vr=C3=A1til?= <dan@progdan.cz>
542+Date: Wed, 16 Apr 2014 18:33:24 +0200
543+Subject: [PATCH] Implement proper support for layoutChange in
544+ QQmlDelegateModel
545+
546+Current implementation is treating model layoutChange the same way as modelReset,
547+which causes problems when using ListView on top of a QSortFilterProxyModel. The
548+model emits layoutChanged whenever a data within sorting column change. Treating
549+it as modelReset leads to poor performance on large models and caused UI issues,
550+because the scrolling position is reset every time.
551+
552+This patch implements proper handling for layoutChanged signals by first handling
553+all items moves and then simulating dataChange for all items.
554+
555+This fixes regression from Qt 5.1 introduced by Change I16b859d9
556+
557+Task-number: QTBUG-37983
558+Task-number: QTBUG-34391
559+Change-Id: I6d3873b7b87e7f0e8fc0c1ed5dc80c6f8fdf6c22
560+---
561+ src/qml/types/qqmldelegatemodel.cpp | 59 +++++++++++++++++++++++++++++++++--
562+ src/qml/types/qqmldelegatemodel_p.h | 3 +-
563+ src/qml/types/qqmldelegatemodel_p_p.h | 2 ++
564+ src/qml/util/qqmladaptormodel.cpp | 12 ++++---
565+ 4 files changed, 69 insertions(+), 7 deletions(-)
566+
567+diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp
568+index be479ee..4591d42 100644
569+--- a/src/qml/types/qqmldelegatemodel.cpp
570++++ b/src/qml/types/qqmldelegatemodel.cpp
571+@@ -1521,9 +1521,64 @@ void QQmlDelegateModel::_q_dataChanged(const QModelIndex &begin, const QModelInd
572+ _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, roles);
573+ }
574+
575+-void QQmlDelegateModel::_q_layoutChanged()
576++void QQmlDelegateModel::_q_layoutAboutToBeChanged(const QList<QPersistentModelIndex> &parents, QAbstractItemModel::LayoutChangeHint hint)
577+ {
578+- _q_modelReset();
579++ Q_D(QQmlDelegateModel);
580++ if (!d->m_complete)
581++ return;
582++
583++ if (hint == QAbstractItemModel::VerticalSortHint) {
584++ d->m_storedPersistentIndexes.clear();
585++ if (!parents.contains(d->m_adaptorModel.rootIndex))
586++ return;
587++
588++ for (int i = 0; i < d->m_count; ++i) {
589++ const QModelIndex index = d->m_adaptorModel.aim()->index(i, 0, d->m_adaptorModel.rootIndex);
590++ d->m_storedPersistentIndexes.append(index);
591++ }
592++ } else if (hint == QAbstractItemModel::HorizontalSortHint) {
593++ // Ignored
594++ } else {
595++ // Triggers model reset, no preparations for that are needed
596++ }
597++}
598++
599++void QQmlDelegateModel::_q_layoutChanged(const QList<QPersistentModelIndex> &parents, QAbstractItemModel::LayoutChangeHint hint)
600++{
601++ Q_D(QQmlDelegateModel);
602++ if (!d->m_complete)
603++ return;
604++
605++ if (hint == QAbstractItemModel::VerticalSortHint) {
606++ if (!parents.contains(d->m_adaptorModel.rootIndex))
607++ return;
608++
609++ for (int i = 0, c = d->m_storedPersistentIndexes.count(); i < c; ++i) {
610++ const QPersistentModelIndex &index = d->m_storedPersistentIndexes.at(i);
611++ if (i == index.row())
612++ continue;
613++
614++ QVector<Compositor::Insert> inserts;
615++ QVector<Compositor::Remove> removes;
616++ d->m_compositor.listItemsMoved(&d->m_adaptorModel, i, index.row(), 1, &removes, &inserts);
617++ if (!removes.isEmpty() || !inserts.isEmpty()) {
618++ d->itemsMoved(removes, inserts);
619++ }
620++ }
621++
622++ d->m_storedPersistentIndexes.clear();
623++
624++ // layoutUpdate does not necessarily have any move changes, but it can
625++ // also mean data changes. We can't detect what exactly has changed, so
626++ // just emit it for all items
627++ _q_itemsChanged(0, d->m_count, QVector<int>());
628++
629++ } else if (hint == QAbstractItemModel::HorizontalSortHint) {
630++ // Ignored
631++ } else {
632++ // We don't know what's going on, so reset the model
633++ _q_modelReset();
634++ }
635+ }
636+
637+ QQmlDelegateModelAttached *QQmlDelegateModel::qmlAttachedProperties(QObject *obj)
638+diff --git a/src/qml/types/qqmldelegatemodel_p.h b/src/qml/types/qqmldelegatemodel_p.h
639+index 51f846e..0b67179 100644
640+--- a/src/qml/types/qqmldelegatemodel_p.h
641++++ b/src/qml/types/qqmldelegatemodel_p.h
642+@@ -139,7 +139,8 @@ private Q_SLOTS:
643+ void _q_rowsRemoved(const QModelIndex &,int,int);
644+ void _q_rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int);
645+ void _q_dataChanged(const QModelIndex&,const QModelIndex&,const QVector<int> &);
646+- void _q_layoutChanged();
647++ void _q_layoutAboutToBeChanged(const QList<QPersistentModelIndex>&, QAbstractItemModel::LayoutChangeHint);
648++ void _q_layoutChanged(const QList<QPersistentModelIndex>&, QAbstractItemModel::LayoutChangeHint);
649+
650+ private:
651+ Q_DISABLE_COPY(QQmlDelegateModel)
652+diff --git a/src/qml/types/qqmldelegatemodel_p_p.h b/src/qml/types/qqmldelegatemodel_p_p.h
653+index 32b1154..67deb4f 100644
654+--- a/src/qml/types/qqmldelegatemodel_p_p.h
655++++ b/src/qml/types/qqmldelegatemodel_p_p.h
656+@@ -331,6 +331,8 @@ public:
657+ };
658+ QQmlDelegateModelGroup *m_groups[Compositor::MaximumGroupCount];
659+ };
660++
661++ QList<QPersistentModelIndex> m_storedPersistentIndexes;
662+ };
663+
664+ class QQmlPartsModel : public QQmlInstanceModel, public QQmlDelegateModelGroupEmitter
665+diff --git a/src/qml/util/qqmladaptormodel.cpp b/src/qml/util/qqmladaptormodel.cpp
666+index d38e5ac..c1c8bfa 100644
667+--- a/src/qml/util/qqmladaptormodel.cpp
668++++ b/src/qml/util/qqmladaptormodel.cpp
669+@@ -467,8 +467,10 @@ public:
670+ vdm, SLOT(_q_rowsMoved(QModelIndex,int,int,QModelIndex,int)));
671+ QObject::disconnect(aim, SIGNAL(modelReset()),
672+ vdm, SLOT(_q_modelReset()));
673+- QObject::disconnect(aim, SIGNAL(layoutChanged()),
674+- vdm, SLOT(_q_layoutChanged()));
675++ QObject::disconnect(aim, SIGNAL(layoutAboutToBeChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)),
676++ vdm, SLOT(_q_layoutAboutToBeChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)));
677++ QObject::disconnect(aim, SIGNAL(layoutChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)),
678++ vdm, SLOT(_q_layoutChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)));
679+ }
680+
681+ const_cast<VDMAbstractItemModelDataType *>(this)->release();
682+@@ -920,8 +922,10 @@ void QQmlAdaptorModel::setModel(const QVariant &variant, QQmlDelegateModel *vdm,
683+ vdm, QQmlDelegateModel, SLOT(_q_rowsMoved(QModelIndex,int,int,QModelIndex,int)));
684+ qmlobject_connect(model, QAbstractItemModel, SIGNAL(modelReset()),
685+ vdm, QQmlDelegateModel, SLOT(_q_modelReset()));
686+- qmlobject_connect(model, QAbstractItemModel, SIGNAL(layoutChanged()),
687+- vdm, QQmlDelegateModel, SLOT(_q_layoutChanged()));
688++ qmlobject_connect(model, QAbstractItemModel, SIGNAL(layoutAboutToBeChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)),
689++ vdm, QQmlDelegateModel, SLOT(_q_layoutAboutToBeChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)));
690++ qmlobject_connect(model, QAbstractItemModel, SIGNAL(layoutChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)),
691++ vdm, QQmlDelegateModel, SLOT(_q_layoutChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)));
692+ } else {
693+ accessors = new VDMObjectDelegateDataType;
694+ }
695+--
696+1.9.1
697+
698
699=== added file 'debian/patches/QQuickItemView-QQuickPathView-Fix-creation-of-delega.patch'
700--- debian/patches/QQuickItemView-QQuickPathView-Fix-creation-of-delega.patch 1970-01-01 00:00:00 +0000
701+++ debian/patches/QQuickItemView-QQuickPathView-Fix-creation-of-delega.patch 2014-04-28 07:48:46 +0000
702@@ -0,0 +1,128 @@
703+From 712d89c638b6294a63fa735c5203983437a4345a Mon Sep 17 00:00:00 2001
704+From: Albert Astals Cid <albert.astals@canonical.com>
705+Date: Tue, 15 Apr 2014 15:27:29 +0200
706+Subject: [PATCH] QQuickItemView/QQuickPathView: Fix creation of delegates
707+
708+When the delegate is set before the model and
709+after the ItemView/PathView has been created
710+
711+Task-number: QTBUG-38368
712+Change-Id: I6963abe28087699cf4e8921153dc7641bae3b220
713+---
714+ src/quick/items/qquickitemview.cpp | 2 ++
715+ src/quick/items/qquickpathview.cpp | 2 ++
716+ tests/auto/qmltest/listview/tst_listview.qml | 23 ++++++++++++++++++
717+ tests/auto/qmltest/pathview/tst_pathview.qml | 35 ++++++++++++++++++++++++++++
718+ 4 files changed, 62 insertions(+)
719+ create mode 100644 tests/auto/qmltest/pathview/tst_pathview.qml
720+
721+diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
722+index 46eec64..b4f6c34 100644
723+--- a/src/quick/items/qquickitemview.cpp
724++++ b/src/quick/items/qquickitemview.cpp
725+@@ -364,6 +364,8 @@ void QQuickItemView::setDelegate(QQmlComponent *delegate)
726+ if (!d->ownModel) {
727+ d->model = new QQmlDelegateModel(qmlContext(this));
728+ d->ownModel = true;
729++ if (isComponentComplete())
730++ static_cast<QQmlDelegateModel *>(d->model.data())->componentComplete();
731+ }
732+ if (QQmlDelegateModel *dataModel = qobject_cast<QQmlDelegateModel*>(d->model)) {
733+ int oldCount = dataModel->count();
734+diff --git a/src/quick/items/qquickpathview.cpp b/src/quick/items/qquickpathview.cpp
735+index ec78967..45cd8e1 100644
736+--- a/src/quick/items/qquickpathview.cpp
737++++ b/src/quick/items/qquickpathview.cpp
738+@@ -1242,6 +1242,8 @@ void QQuickPathView::setDelegate(QQmlComponent *delegate)
739+ if (!d->ownModel) {
740+ d->model = new QQmlDelegateModel(qmlContext(this));
741+ d->ownModel = true;
742++ if (isComponentComplete())
743++ static_cast<QQmlDelegateModel *>(d->model.data())->componentComplete();
744+ }
745+ if (QQmlDelegateModel *dataModel = qobject_cast<QQmlDelegateModel*>(d->model)) {
746+ int oldCount = dataModel->count();
747+diff --git a/tests/auto/qmltest/listview/tst_listview.qml b/tests/auto/qmltest/listview/tst_listview.qml
748+index 0589e7c..03be579 100644
749+--- a/tests/auto/qmltest/listview/tst_listview.qml
750++++ b/tests/auto/qmltest/listview/tst_listview.qml
751+@@ -102,6 +102,23 @@ Item {
752+ }
753+ }
754+
755++ ListView {
756++ id: listViewDelegateModelAfterCreate
757++ anchors.fill: parent
758++ property int createdDelegates: 0
759++ }
760++
761++ Component {
762++ id: delegateModelAfterCreateComponent
763++ Rectangle {
764++ width: 140
765++ height: 140
766++ border.color: "black"
767++ color: "red"
768++ Component.onCompleted: listViewDelegateModelAfterCreate.createdDelegates++;
769++ }
770++ }
771++
772+ ListModel { id: emptymodel }
773+ ListModel { id: manyitems }
774+ ListModel { id: firstmodel; ListElement { name: "FirstModelElement0" } }
775+@@ -249,5 +266,11 @@ Item {
776+ asyncListViewLoaderView.currentIndex = 4;
777+ }
778+ }
779++
780++ function test_set_delegate_model_after_list_creation() {
781++ listViewDelegateModelAfterCreate.delegate = delegateModelAfterCreateComponent;
782++ listViewDelegateModelAfterCreate.model = 40;
783++ verify(listViewDelegateModelAfterCreate.createdDelegates > 0);
784++ }
785+ }
786+ }
787+diff --git a/tests/auto/qmltest/pathview/tst_pathview.qml b/tests/auto/qmltest/pathview/tst_pathview.qml
788+new file mode 100644
789+index 0000000..820034c
790+--- /dev/null
791++++ b/tests/auto/qmltest/pathview/tst_pathview.qml
792+@@ -0,0 +1,35 @@
793++import QtQuick 2.1
794++import QtTest 1.0
795++
796++Item {
797++ id: top
798++
799++ PathView {
800++ id: pathViewDelegateModelAfterCreate
801++ anchors.fill: parent
802++ property int createdDelegates: 0
803++ path: Path { startX: 120; startY: 100 }
804++ }
805++
806++ Component {
807++ id: delegateModelAfterCreateComponent
808++ Rectangle {
809++ width: 140
810++ height: 140
811++ border.color: "black"
812++ color: "red"
813++ Component.onCompleted: pathViewDelegateModelAfterCreate.createdDelegates++;
814++ }
815++ }
816++
817++ TestCase {
818++ name: "PathView"
819++ when: windowShown
820++
821++ function test_set_delegate_model_after_path_creation() {
822++ pathViewDelegateModelAfterCreate.delegate = delegateModelAfterCreateComponent;
823++ pathViewDelegateModelAfterCreate.model = 40;
824++ verify(pathViewDelegateModelAfterCreate.createdDelegates > 0);
825++ }
826++ }
827++}
828+--
829+1.9.1
830+
831
832=== added file 'debian/patches/V4-regalloc-fix-register-spill-choice-under-high-pre.patch'
833--- debian/patches/V4-regalloc-fix-register-spill-choice-under-high-pre.patch 1970-01-01 00:00:00 +0000
834+++ debian/patches/V4-regalloc-fix-register-spill-choice-under-high-pre.patch 2014-04-28 07:48:46 +0000
835@@ -0,0 +1,50 @@
836+From 093ca2f431bdd65e8f7eea1ec1cbb59f45061cd2 Mon Sep 17 00:00:00 2001
837+From: Erik Verbruggen <erik.verbruggen@digia.com>
838+Date: Wed, 23 Apr 2014 15:13:56 +0200
839+Subject: [PATCH] V4 regalloc: fix register spill choice under high pressure.
840+
841+When a register is needed for an input parameter of an operation, and
842+all registers are already in use, do not select a register for spilling
843+when it is also used in the current operation.
844+
845+Task-number: QTBUG-38451
846+Change-Id: I4a8f28cbaadce2dbb9d0c450ccac0ed572936c24
847+---
848+ src/qml/jit/qv4regalloc.cpp | 10 +++++++++-
849+ 1 file changed, 9 insertions(+), 1 deletion(-)
850+
851+diff --git a/src/qml/jit/qv4regalloc.cpp b/src/qml/jit/qv4regalloc.cpp
852+index 506fd8d..ba128c1 100644
853+--- a/src/qml/compiler/qv4regalloc.cpp
854++++ b/src/qml/compiler/qv4regalloc.cpp
855+@@ -1222,6 +1222,10 @@ void RegisterAllocator::linearScan()
856+
857+ Q_ASSERT(!current.isFixedInterval());
858+
859++#ifdef DEBUG_REGALLOC
860++ qDebug() << "** Position" << position;
861++#endif // DEBUG_REGALLOC
862++
863+ if (_info->canHaveRegister(current.temp())) {
864+ tryAllocateFreeReg(current, position);
865+ if (current.reg() == LifeTimeInterval::Invalid)
866+@@ -1374,11 +1378,15 @@ void RegisterAllocator::allocateBlockedReg(LifeTimeInterval &current, const int
867+ QVector<LifeTimeInterval *> nextUseRangeForReg(nextUsePos.size(), 0);
868+ Q_ASSERT(nextUsePos.size() > 0);
869+
870++ const bool definedAtCurrentPosition = !current.isSplitFromInterval() && current.start() == position;
871++
872+ for (int i = 0, ei = _active.size(); i != ei; ++i) {
873+ LifeTimeInterval &it = _active[i];
874+ if (it.isFP() == needsFPReg) {
875+ int nu = it.isFixedInterval() ? 0 : nextUse(it.temp(), current.firstPossibleUsePosition(isPhiTarget));
876+- if (nu != -1 && nu < nextUsePos[it.reg()]) {
877++ if (nu == position && !definedAtCurrentPosition) {
878++ nextUsePos[it.reg()] = 0;
879++ } else if (nu != -1 && nu < nextUsePos[it.reg()]) {
880+ nextUsePos[it.reg()] = nu;
881+ nextUseRangeForReg[it.reg()] = &it;
882+ } else if (nu == -1 && nextUsePos[it.reg()] == INT_MAX) {
883+--
884+1.9.1
885+
886
887=== modified file 'debian/patches/series'
888--- debian/patches/series 2014-04-10 06:00:35 +0000
889+++ debian/patches/series 2014-04-28 07:48:46 +0000
890@@ -20,3 +20,7 @@
891 0001-Call-tzset-from-getLocalTZA-so-we-learn-about-tz-cha.patch
892 Support-RFC2822Date-date-format-similar-to-V8.patch
893 Fix_QSmoothedAnimation_sometimes_getting_stuck.patch
894+Fix-marking-of-prototype-objects-in-chain.patch
895+QQuickItemView-QQuickPathView-Fix-creation-of-delega.patch
896+Implement-proper-support-for-layoutChange-in-QQmlDel.patch
897+V4-regalloc-fix-register-spill-choice-under-high-pre.patch
898
899=== renamed file 'debian/qtdeclarative5-models-plugin.install' => 'debian/qml-model-qtqml-models2.install'
900=== renamed file 'debian/qtdeclarative5-folderlistmodel-plugin.install' => 'debian/qml-module-qt-labs-folderlistmodel.install'
901=== renamed file 'debian/qtdeclarative5-settings-plugin.install' => 'debian/qml-module-qt-labs-settings.install'
902=== renamed file 'debian/qtdeclarative5-dialogs-plugin.install' => 'debian/qml-module-qtquick-dialogs.install'
903--- debian/qtdeclarative5-dialogs-plugin.install 2014-02-10 15:33:35 +0000
904+++ debian/qml-module-qtquick-dialogs.install 2014-04-28 07:48:46 +0000
905@@ -1,1 +1,5 @@
906-usr/lib/*/qt5/qml/QtQuick/Dialogs/
907+usr/lib/*/qt5/qml/QtQuick/Dialogs/Private/libdialogsprivateplugin.so
908+usr/lib/*/qt5/qml/QtQuick/Dialogs/Private/qmldir
909+usr/lib/*/qt5/qml/QtQuick/Dialogs/libdialogplugin.so
910+usr/lib/*/qt5/qml/QtQuick/Dialogs/plugins.qmltypes
911+usr/lib/*/qt5/qml/QtQuick/Dialogs/qmldir
912
913=== renamed file 'debian/qtdeclarative5-dialogs-plugin.lintian-overrides' => 'debian/qml-module-qtquick-dialogs.lintian-overrides'
914--- debian/qtdeclarative5-dialogs-plugin.lintian-overrides 2013-08-30 11:58:43 +0000
915+++ debian/qml-module-qtquick-dialogs.lintian-overrides 2014-04-28 07:48:46 +0000
916@@ -1,1 +1,1 @@
917-qtdeclarative5-dialogs-plugin: image-file-in-usr-lib
918+qml-module-qtquick-dialogs: image-file-in-usr-lib
919
920=== renamed file 'debian/qtdeclarative5-localstorage-plugin.install' => 'debian/qml-module-qtquick-localstorage.install'
921=== renamed file 'debian/qtdeclarative5-particles-plugin.install' => 'debian/qml-module-qtquick-particles2.install'
922=== renamed file 'debian/qtdeclarative5-privatewidgets-plugin.install' => 'debian/qml-module-qtquick-privatewidgets.install'
923=== renamed file 'debian/qtdeclarative5-window-plugin.install' => 'debian/qml-module-qtquick-window2.install'
924=== renamed file 'debian/qtdeclarative5-xmllistmodel-plugin.install' => 'debian/qml-module-qtquick-xmllistmodel.install'
925=== renamed file 'debian/qtdeclarative5-qtquick2-plugin.install' => 'debian/qml-module-qtquick2.install'
926=== renamed file 'debian/qtdeclarative5-test-plugin.install' => 'debian/qml-module-qttest.install'
927=== added file 'debian/source/lintian-overrides'
928--- debian/source/lintian-overrides 1970-01-01 00:00:00 +0000
929+++ debian/source/lintian-overrides 2014-04-28 07:48:46 +0000
930@@ -0,0 +1,1 @@
931+qtdeclarative-opensource-src source: duplicate-long-description qtdeclarative5-dialogs-plugin qtdeclarative5-folderlistmodel-plugin qtdeclarative5-localstorage-plugin qtdeclarative5-models-plugin qtdeclarative5-particles-plugin qtdeclarative5-privatewidgets-plugin qtdeclarative5-qtquick2-plugin qtdeclarative5-settings-plugin qtdeclarative5-test-plugin qtdeclarative5-window-plugin qtdeclarative5-xmllistmodel-plugin

Subscribers

People subscribed via source and target branches