1 |
commit: acd0ddbca7c809bd883e4c06ec1e0ca7ca3b8125 |
2 |
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu May 10 16:39:35 2018 +0000 |
4 |
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu May 10 16:40:11 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=acd0ddbc |
7 |
|
8 |
dev-qt: Drop unused patches |
9 |
|
10 |
dev-qt/qtcore/files/qtcore-5.7.1-qipm.patch | 152 ------------- |
11 |
dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-1.patch | 252 --------------------- |
12 |
dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-2.patch | 195 ---------------- |
13 |
dev-qt/qtgui/files/qtgui-5.7.1-qclipboard.patch | 39 ---- |
14 |
dev-qt/qtgui/files/qtgui-5.7.1-x32.patch | 34 --- |
15 |
dev-qt/qtsql/files/qtsql-5.7.1-mariadb.patch | 56 ----- |
16 |
.../qtwebengine-5.7.0-fix-system-ffmpeg.patch | 13 -- |
17 |
.../files/qtwebengine-5.7.0-icu58.patch | 51 ----- |
18 |
.../files/qtwebengine-5.7.0-undef-madv_free.patch | 33 --- |
19 |
.../qtwebengine-5.7.1-fix-audio-detection.patch | 23 -- |
20 |
.../files/qtwebengine-5.7.1-gcc-7.patch | 144 ------------ |
21 |
11 files changed, 992 deletions(-) |
22 |
|
23 |
diff --git a/dev-qt/qtcore/files/qtcore-5.7.1-qipm.patch b/dev-qt/qtcore/files/qtcore-5.7.1-qipm.patch |
24 |
deleted file mode 100644 |
25 |
index abea1458807..00000000000 |
26 |
--- a/dev-qt/qtcore/files/qtcore-5.7.1-qipm.patch |
27 |
+++ /dev/null |
28 |
@@ -1,152 +0,0 @@ |
29 |
-From baad82d242a4d8c1af6c87faaa7f25584183fd53 Mon Sep 17 00:00:00 2001 |
30 |
-From: Stephen Kelly <steveire@×××××.com> |
31 |
-Date: Tue, 20 Dec 2016 00:44:12 +0000 |
32 |
-Subject: [PATCH] QIPM: Persist model indexes after emitting layoutChange, not |
33 |
- before |
34 |
- |
35 |
-Callers can persist a QModelIndex which was not persisted before in a |
36 |
-slot connected to the signal, and such a persisted index must be updated |
37 |
-in the course of the layoutChange. |
38 |
- |
39 |
-Store the indexes to persist after emitting the signal. |
40 |
- |
41 |
-Task-number: QTBUG-32981 |
42 |
-Change-Id: Ibee4c0d84817d72603a03fe5b22fdeefeac0695e |
43 |
-Reviewed-by: David Faure <david.faure@××××.com> |
44 |
---- |
45 |
- src/corelib/itemmodels/qidentityproxymodel.cpp | 18 ++--- |
46 |
- .../tst_qidentityproxymodel.cpp | 76 ++++++++++++++++++++++ |
47 |
- 2 files changed, 85 insertions(+), 9 deletions(-) |
48 |
- |
49 |
-diff --git a/src/corelib/itemmodels/qidentityproxymodel.cpp b/src/corelib/itemmodels/qidentityproxymodel.cpp |
50 |
-index e537793..7c30679 100644 |
51 |
---- a/src/corelib/itemmodels/qidentityproxymodel.cpp |
52 |
-+++ b/src/corelib/itemmodels/qidentityproxymodel.cpp |
53 |
-@@ -496,15 +496,6 @@ void QIdentityProxyModelPrivate::_q_sourceLayoutAboutToBeChanged(const QList<QPe |
54 |
- { |
55 |
- Q_Q(QIdentityProxyModel); |
56 |
- |
57 |
-- const auto proxyPersistentIndexes = q->persistentIndexList(); |
58 |
-- for (const QPersistentModelIndex &proxyPersistentIndex : proxyPersistentIndexes) { |
59 |
-- proxyIndexes << proxyPersistentIndex; |
60 |
-- Q_ASSERT(proxyPersistentIndex.isValid()); |
61 |
-- const QPersistentModelIndex srcPersistentIndex = q->mapToSource(proxyPersistentIndex); |
62 |
-- Q_ASSERT(srcPersistentIndex.isValid()); |
63 |
-- layoutChangePersistentIndexes << srcPersistentIndex; |
64 |
-- } |
65 |
-- |
66 |
- QList<QPersistentModelIndex> parents; |
67 |
- parents.reserve(sourceParents.size()); |
68 |
- for (const QPersistentModelIndex &parent : sourceParents) { |
69 |
-@@ -518,6 +509,15 @@ void QIdentityProxyModelPrivate::_q_sourceLayoutAboutToBeChanged(const QList<QPe |
70 |
- } |
71 |
- |
72 |
- q->layoutAboutToBeChanged(parents, hint); |
73 |
-+ |
74 |
-+ const auto proxyPersistentIndexes = q->persistentIndexList(); |
75 |
-+ for (const QPersistentModelIndex &proxyPersistentIndex : proxyPersistentIndexes) { |
76 |
-+ proxyIndexes << proxyPersistentIndex; |
77 |
-+ Q_ASSERT(proxyPersistentIndex.isValid()); |
78 |
-+ const QPersistentModelIndex srcPersistentIndex = q->mapToSource(proxyPersistentIndex); |
79 |
-+ Q_ASSERT(srcPersistentIndex.isValid()); |
80 |
-+ layoutChangePersistentIndexes << srcPersistentIndex; |
81 |
-+ } |
82 |
- } |
83 |
- |
84 |
- void QIdentityProxyModelPrivate::_q_sourceLayoutChanged(const QList<QPersistentModelIndex> &sourceParents, QAbstractItemModel::LayoutChangeHint hint) |
85 |
-diff --git a/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp b/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp |
86 |
-index e946f31..564b854 100644 |
87 |
---- a/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp |
88 |
-+++ b/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp |
89 |
-@@ -68,6 +68,8 @@ private slots: |
90 |
- |
91 |
- void itemData(); |
92 |
- |
93 |
-+ void persistIndexOnLayoutChange(); |
94 |
-+ |
95 |
- protected: |
96 |
- void verifyIdentity(QAbstractItemModel *model, const QModelIndex &parent = QModelIndex()); |
97 |
- |
98 |
-@@ -377,5 +379,79 @@ void tst_QIdentityProxyModel::itemData() |
99 |
- QCOMPARE(proxy.itemData(topIndex).value(Qt::DisplayRole).toString(), QStringLiteral("Monday_appended")); |
100 |
- } |
101 |
- |
102 |
-+void dump(QAbstractItemModel* model, QString const& indent = " - ", QModelIndex const& parent = {}) |
103 |
-+{ |
104 |
-+ for (auto row = 0; row < model->rowCount(parent); ++row) |
105 |
-+ { |
106 |
-+ auto idx = model->index(row, 0, parent); |
107 |
-+ qDebug() << (indent + idx.data().toString()); |
108 |
-+ dump(model, indent + "- ", idx); |
109 |
-+ } |
110 |
-+} |
111 |
-+ |
112 |
-+void tst_QIdentityProxyModel::persistIndexOnLayoutChange() |
113 |
-+{ |
114 |
-+ DynamicTreeModel model; |
115 |
-+ |
116 |
-+ QList<int> ancestors; |
117 |
-+ for (auto i = 0; i < 3; ++i) |
118 |
-+ { |
119 |
-+ Q_UNUSED(i); |
120 |
-+ ModelInsertCommand insertCommand(&model); |
121 |
-+ insertCommand.setAncestorRowNumbers(ancestors); |
122 |
-+ insertCommand.setStartRow(0); |
123 |
-+ insertCommand.setEndRow(0); |
124 |
-+ insertCommand.doCommand(); |
125 |
-+ ancestors.push_back(0); |
126 |
-+ } |
127 |
-+ ModelInsertCommand insertCommand(&model); |
128 |
-+ insertCommand.setAncestorRowNumbers(ancestors); |
129 |
-+ insertCommand.setStartRow(0); |
130 |
-+ insertCommand.setEndRow(1); |
131 |
-+ insertCommand.doCommand(); |
132 |
-+ |
133 |
-+ // dump(&model); |
134 |
-+ // " - 1" |
135 |
-+ // " - - 2" |
136 |
-+ // " - - - 3" |
137 |
-+ // " - - - - 4" |
138 |
-+ // " - - - - 5" |
139 |
-+ |
140 |
-+ QIdentityProxyModel proxy; |
141 |
-+ proxy.setSourceModel(&model); |
142 |
-+ |
143 |
-+ QPersistentModelIndex persistentIndex; |
144 |
-+ |
145 |
-+ QPersistentModelIndex sourcePersistentIndex = model.match(model.index(0, 0), Qt::DisplayRole, "5", 1, Qt::MatchRecursive).first(); |
146 |
-+ |
147 |
-+ QCOMPARE(sourcePersistentIndex.data().toString(), QStringLiteral("5")); |
148 |
-+ |
149 |
-+ bool gotLayoutAboutToBeChanged = false; |
150 |
-+ bool gotLayoutChanged = false; |
151 |
-+ |
152 |
-+ QObject::connect(&proxy, &QAbstractItemModel::layoutAboutToBeChanged, &proxy, [&proxy, &persistentIndex, &gotLayoutAboutToBeChanged] |
153 |
-+ { |
154 |
-+ gotLayoutAboutToBeChanged = true; |
155 |
-+ persistentIndex = proxy.match(proxy.index(0, 0), Qt::DisplayRole, "5", 1, Qt::MatchRecursive).first(); |
156 |
-+ }); |
157 |
-+ |
158 |
-+ QObject::connect(&proxy, &QAbstractItemModel::layoutChanged, &proxy, [&proxy, &persistentIndex, &sourcePersistentIndex, &gotLayoutChanged] |
159 |
-+ { |
160 |
-+ gotLayoutChanged = true; |
161 |
-+ QCOMPARE(QModelIndex(persistentIndex), proxy.mapFromSource(sourcePersistentIndex)); |
162 |
-+ }); |
163 |
-+ |
164 |
-+ ModelChangeChildrenLayoutsCommand layoutChangeCommand(&model, 0); |
165 |
-+ |
166 |
-+ layoutChangeCommand.setAncestorRowNumbers(QList<int>{0, 0, 0}); |
167 |
-+ layoutChangeCommand.setSecondAncestorRowNumbers(QList<int>{0, 0}); |
168 |
-+ |
169 |
-+ layoutChangeCommand.doCommand(); |
170 |
-+ |
171 |
-+ QVERIFY(gotLayoutAboutToBeChanged); |
172 |
-+ QVERIFY(gotLayoutChanged); |
173 |
-+ QVERIFY(persistentIndex.isValid()); |
174 |
-+} |
175 |
-+ |
176 |
- QTEST_MAIN(tst_QIdentityProxyModel) |
177 |
- #include "tst_qidentityproxymodel.moc" |
178 |
--- |
179 |
-2.7.4 |
180 |
- |
181 |
|
182 |
diff --git a/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-1.patch b/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-1.patch |
183 |
deleted file mode 100644 |
184 |
index 9edbe18617a..00000000000 |
185 |
--- a/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-1.patch |
186 |
+++ /dev/null |
187 |
@@ -1,252 +0,0 @@ |
188 |
-From 3bd0fd8f97e7a33a874929a383a42e6c710bfff3 Mon Sep 17 00:00:00 2001 |
189 |
-From: Stephen Kelly <steveire@×××××.com> |
190 |
-Date: Sat, 17 Dec 2016 06:20:06 +0000 |
191 |
-Subject: [PATCH] QSFPM: Fix handling of source model layout change |
192 |
- |
193 |
-In sourceLayoutAboutToBeChanged the source model update is ignored if |
194 |
-the affected parents are filtered out anyway. The same logic is |
195 |
-attempted in the sourceLayoutChanged slot, but there the early-return |
196 |
-logic is applied too late - the mapping is cleared before performing the |
197 |
-early-return. Because pointers into the mapping are used in the |
198 |
-internalPointer of QModelIndexes in this class, persistent indexes used |
199 |
-later will segfault when attempting to dereference it. |
200 |
- |
201 |
-Additionally, if a parent becomes invalid as a result of the |
202 |
-layoutChange, it would be filtered out by the condition in the loop, |
203 |
-resulting in a different result in the comparison of emptiness of the |
204 |
-parents container. |
205 |
- |
206 |
-Fix that by persisting the parent's container, and performing the test |
207 |
-for early-return before clearing the mapping. |
208 |
- |
209 |
-Task-number: QTBUG-47711 |
210 |
-Task-number: QTBUG-32981 |
211 |
-Change-Id: If45e8a1c97d39454160f52041bc9ae7e337dce97 |
212 |
-Reviewed-by: David Faure <david.faure@××××.com> |
213 |
---- |
214 |
- src/corelib/itemmodels/qsortfilterproxymodel.cpp | 31 ++--- |
215 |
- .../tst_qsortfilterproxymodel.cpp | 126 +++++++++++++++++++++ |
216 |
- 2 files changed, 137 insertions(+), 20 deletions(-) |
217 |
- |
218 |
-diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp |
219 |
-index b0ddfa8..3331521 100644 |
220 |
---- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp |
221 |
-+++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp |
222 |
-@@ -171,6 +171,7 @@ public: |
223 |
- QRowsRemoval itemsBeingRemoved; |
224 |
- |
225 |
- QModelIndexPairList saved_persistent_indexes; |
226 |
-+ QList<QPersistentModelIndex> saved_layoutChange_parents; |
227 |
- |
228 |
- QHash<QModelIndex, Mapping *>::const_iterator create_mapping( |
229 |
- const QModelIndex &source_parent) const; |
230 |
-@@ -1331,23 +1332,23 @@ void QSortFilterProxyModelPrivate::_q_sourceLayoutAboutToBeChanged(const QList<Q |
231 |
- Q_UNUSED(hint); // We can't forward Hint because we might filter additional rows or columns |
232 |
- saved_persistent_indexes.clear(); |
233 |
- |
234 |
-- QList<QPersistentModelIndex> parents; |
235 |
-+ saved_layoutChange_parents.clear(); |
236 |
- for (const QPersistentModelIndex &parent : sourceParents) { |
237 |
- if (!parent.isValid()) { |
238 |
-- parents << QPersistentModelIndex(); |
239 |
-+ saved_layoutChange_parents << QPersistentModelIndex(); |
240 |
- continue; |
241 |
- } |
242 |
- const QModelIndex mappedParent = q->mapFromSource(parent); |
243 |
- // Might be filtered out. |
244 |
- if (mappedParent.isValid()) |
245 |
-- parents << mappedParent; |
246 |
-+ saved_layoutChange_parents << mappedParent; |
247 |
- } |
248 |
- |
249 |
- // All parents filtered out. |
250 |
-- if (!sourceParents.isEmpty() && parents.isEmpty()) |
251 |
-+ if (!sourceParents.isEmpty() && saved_layoutChange_parents.isEmpty()) |
252 |
- return; |
253 |
- |
254 |
-- emit q->layoutAboutToBeChanged(parents); |
255 |
-+ emit q->layoutAboutToBeChanged(saved_layoutChange_parents); |
256 |
- if (persistent.indexes.isEmpty()) |
257 |
- return; |
258 |
- |
259 |
-@@ -1359,6 +1360,9 @@ void QSortFilterProxyModelPrivate::_q_sourceLayoutChanged(const QList<QPersisten |
260 |
- Q_Q(QSortFilterProxyModel); |
261 |
- Q_UNUSED(hint); // We can't forward Hint because we might filter additional rows or columns |
262 |
- |
263 |
-+ if (!sourceParents.isEmpty() && saved_layoutChange_parents.isEmpty()) |
264 |
-+ return; |
265 |
-+ |
266 |
- // Optimize: We only actually have to clear the mapping related to the contents of |
267 |
- // sourceParents, not everything. |
268 |
- qDeleteAll(source_index_mapping); |
269 |
-@@ -1373,21 +1377,8 @@ void QSortFilterProxyModelPrivate::_q_sourceLayoutChanged(const QList<QPersisten |
270 |
- source_index_mapping.clear(); |
271 |
- } |
272 |
- |
273 |
-- QList<QPersistentModelIndex> parents; |
274 |
-- for (const QPersistentModelIndex &parent : sourceParents) { |
275 |
-- if (!parent.isValid()) { |
276 |
-- parents << QPersistentModelIndex(); |
277 |
-- continue; |
278 |
-- } |
279 |
-- const QModelIndex mappedParent = q->mapFromSource(parent); |
280 |
-- if (mappedParent.isValid()) |
281 |
-- parents << mappedParent; |
282 |
-- } |
283 |
-- |
284 |
-- if (!sourceParents.isEmpty() && parents.isEmpty()) |
285 |
-- return; |
286 |
-- |
287 |
-- emit q->layoutChanged(parents); |
288 |
-+ emit q->layoutChanged(saved_layoutChange_parents); |
289 |
-+ saved_layoutChange_parents.clear(); |
290 |
- } |
291 |
- |
292 |
- void QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted( |
293 |
-diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp |
294 |
-index 38e3c68..6b98d9f 100644 |
295 |
---- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp |
296 |
-+++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp |
297 |
-@@ -145,6 +145,8 @@ private slots: |
298 |
- void canDropMimeData(); |
299 |
- void filterHint(); |
300 |
- |
301 |
-+ void sourceLayoutChangeLeavesValidPersistentIndexes(); |
302 |
-+ |
303 |
- protected: |
304 |
- void buildHierarchy(const QStringList &data, QAbstractItemModel *model); |
305 |
- void checkHierarchy(const QStringList &data, const QAbstractItemModel *model); |
306 |
-@@ -4181,5 +4183,129 @@ void tst_QSortFilterProxyModel::filterHint() |
307 |
- QAbstractItemModel::NoLayoutChangeHint); |
308 |
- } |
309 |
- |
310 |
-+/** |
311 |
-+ |
312 |
-+ Creates a model where each item has one child, to a set depth, |
313 |
-+ and the last item has no children. For a model created with |
314 |
-+ setDepth(4): |
315 |
-+ |
316 |
-+ - 1 |
317 |
-+ - - 2 |
318 |
-+ - - - 3 |
319 |
-+ - - - - 4 |
320 |
-+*/ |
321 |
-+class StepTreeModel : public QAbstractItemModel |
322 |
-+{ |
323 |
-+ Q_OBJECT |
324 |
-+public: |
325 |
-+ StepTreeModel(QObject * parent = 0) |
326 |
-+ : QAbstractItemModel(parent), m_depth(0) {} |
327 |
-+ |
328 |
-+ int columnCount(const QModelIndex& = QModelIndex()) const override { return 1; } |
329 |
-+ |
330 |
-+ int rowCount(const QModelIndex& parent = QModelIndex()) const override |
331 |
-+ { |
332 |
-+ quintptr parentId = (parent.isValid()) ? parent.internalId() : 0; |
333 |
-+ return (parentId < m_depth) ? 1 : 0; |
334 |
-+ } |
335 |
-+ |
336 |
-+ QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const override |
337 |
-+ { |
338 |
-+ if (role != Qt::DisplayRole) |
339 |
-+ return QVariant(); |
340 |
-+ |
341 |
-+ return QString::number(index.internalId()); |
342 |
-+ } |
343 |
-+ |
344 |
-+ QModelIndex index(int, int, const QModelIndex& parent = QModelIndex()) const override |
345 |
-+ { |
346 |
-+ quintptr parentId = (parent.isValid()) ? parent.internalId() : 0; |
347 |
-+ if (parentId >= m_depth) |
348 |
-+ return QModelIndex(); |
349 |
-+ |
350 |
-+ return createIndex(0, 0, parentId + 1); |
351 |
-+ } |
352 |
-+ |
353 |
-+ QModelIndex parent(const QModelIndex& index) const override |
354 |
-+ { |
355 |
-+ if (index.internalId() == 0) |
356 |
-+ return QModelIndex(); |
357 |
-+ |
358 |
-+ return createIndex(0, 0, index.internalId() - 1); |
359 |
-+ } |
360 |
-+ |
361 |
-+ void setDepth(quintptr depth) |
362 |
-+ { |
363 |
-+ int parentIdWithLayoutChange = (m_depth < depth) ? m_depth : depth; |
364 |
-+ |
365 |
-+ QList<QPersistentModelIndex> parentsOfLayoutChange; |
366 |
-+ parentsOfLayoutChange.push_back(createIndex(0, 0, parentIdWithLayoutChange)); |
367 |
-+ |
368 |
-+ layoutAboutToBeChanged(parentsOfLayoutChange); |
369 |
-+ |
370 |
-+ auto existing = persistentIndexList(); |
371 |
-+ |
372 |
-+ QList<QModelIndex> updated; |
373 |
-+ |
374 |
-+ for (auto idx : existing) { |
375 |
-+ if (indexDepth(idx) <= depth) |
376 |
-+ updated.push_back(idx); |
377 |
-+ else |
378 |
-+ updated.push_back({}); |
379 |
-+ } |
380 |
-+ |
381 |
-+ m_depth = depth; |
382 |
-+ |
383 |
-+ changePersistentIndexList(existing, updated); |
384 |
-+ |
385 |
-+ layoutChanged(parentsOfLayoutChange); |
386 |
-+ } |
387 |
-+ |
388 |
-+private: |
389 |
-+ static quintptr indexDepth(QModelIndex const& index) |
390 |
-+ { |
391 |
-+ return (index.isValid()) ? 1 + indexDepth(index.parent()) : 0; |
392 |
-+ } |
393 |
-+ |
394 |
-+private: |
395 |
-+ quintptr m_depth; |
396 |
-+}; |
397 |
-+ |
398 |
-+void tst_QSortFilterProxyModel::sourceLayoutChangeLeavesValidPersistentIndexes() |
399 |
-+{ |
400 |
-+ StepTreeModel model; |
401 |
-+ Q_SET_OBJECT_NAME(model); |
402 |
-+ model.setDepth(4); |
403 |
-+ |
404 |
-+ QSortFilterProxyModel proxy1; |
405 |
-+ proxy1.setSourceModel(&model); |
406 |
-+ Q_SET_OBJECT_NAME(proxy1); |
407 |
-+ |
408 |
-+ proxy1.setFilterRegExp("1|2"); |
409 |
-+ |
410 |
-+ // The current state of things: |
411 |
-+ // model proxy |
412 |
-+ // - 1 - 1 |
413 |
-+ // - - 2 - - 2 |
414 |
-+ // - - - 3 |
415 |
-+ // - - - - 4 |
416 |
-+ |
417 |
-+ // The setDepth call below removes '4' with a layoutChanged call. |
418 |
-+ // Because the proxy filters that out anyway, the proxy doesn't need |
419 |
-+ // to emit any signals or update persistent indexes. |
420 |
-+ |
421 |
-+ QPersistentModelIndex persistentIndex = proxy1.index(0, 0, proxy1.index(0, 0)); |
422 |
-+ |
423 |
-+ model.setDepth(3); |
424 |
-+ |
425 |
-+ // Calling parent() causes the internalPointer to be used. |
426 |
-+ // Before fixing QTBUG-47711, that could be a dangling pointer. |
427 |
-+ // The use of qDebug here makes sufficient use of the heap to |
428 |
-+ // cause corruption at runtime with normal use on linux (before |
429 |
-+ // the fix). valgrind confirms the fix. |
430 |
-+ qDebug() << persistentIndex.parent(); |
431 |
-+ QVERIFY(persistentIndex.parent().isValid()); |
432 |
-+} |
433 |
-+ |
434 |
- QTEST_MAIN(tst_QSortFilterProxyModel) |
435 |
- #include "tst_qsortfilterproxymodel.moc" |
436 |
--- |
437 |
-2.7.4 |
438 |
- |
439 |
- |
440 |
|
441 |
diff --git a/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-2.patch b/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-2.patch |
442 |
deleted file mode 100644 |
443 |
index 973649637e6..00000000000 |
444 |
--- a/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-2.patch |
445 |
+++ /dev/null |
446 |
@@ -1,195 +0,0 @@ |
447 |
-From 0874861bcc70313c343aba5e5566ed30b69eed1c Mon Sep 17 00:00:00 2001 |
448 |
-From: Stephen Kelly <steveire@×××××.com> |
449 |
-Date: Mon, 19 Dec 2016 21:13:57 +0000 |
450 |
-Subject: [PATCH] QSFPM: Remove data manipulation from move handlers |
451 |
- |
452 |
-Similar to the fix in the parent commit, incorrect updating of the |
453 |
-internal data structures during layout changes can lead to dangling |
454 |
-pointers being dereferenced later. Moves are treated as layoutChanges |
455 |
-by this proxy by forwarding to the appropriate method. However, data is |
456 |
-incorrectly cleared prior to that forwarding. Remove that, and let the |
457 |
-layoutChange handling take appropriate action. |
458 |
- |
459 |
-Change-Id: Iee951e37152328a4e6a5fb8e5385c32a2fe4c0bd |
460 |
-Reviewed-by: David Faure <david.faure@××××.com> |
461 |
---- |
462 |
- src/corelib/itemmodels/qsortfilterproxymodel.cpp | 67 ++++------------------ |
463 |
- .../tst_qsortfilterproxymodel.cpp | 46 +++++++++++++++ |
464 |
- 2 files changed, 58 insertions(+), 55 deletions(-) |
465 |
- |
466 |
-diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp |
467 |
-index 3331521..226a240 100644 |
468 |
---- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp |
469 |
-+++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp |
470 |
-@@ -1418,49 +1418,27 @@ void QSortFilterProxyModelPrivate::_q_sourceRowsRemoved( |
471 |
- void QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeMoved( |
472 |
- const QModelIndex &sourceParent, int /* sourceStart */, int /* sourceEnd */, const QModelIndex &destParent, int /* dest */) |
473 |
- { |
474 |
-- Q_Q(QSortFilterProxyModel); |
475 |
- // Because rows which are contiguous in the source model might not be contiguous |
476 |
- // in the proxy due to sorting, the best thing we can do here is be specific about what |
477 |
- // parents are having their children changed. |
478 |
- // Optimize: Emit move signals if the proxy is not sorted. Will need to account for rows |
479 |
- // being filtered out though. |
480 |
- |
481 |
-- saved_persistent_indexes.clear(); |
482 |
-- |
483 |
- QList<QPersistentModelIndex> parents; |
484 |
-- parents << q->mapFromSource(sourceParent); |
485 |
-+ parents << sourceParent; |
486 |
- if (sourceParent != destParent) |
487 |
-- parents << q->mapFromSource(destParent); |
488 |
-- emit q->layoutAboutToBeChanged(parents); |
489 |
-- if (persistent.indexes.isEmpty()) |
490 |
-- return; |
491 |
-- saved_persistent_indexes = store_persistent_indexes(); |
492 |
-+ parents << destParent; |
493 |
-+ _q_sourceLayoutAboutToBeChanged(parents, QAbstractItemModel::NoLayoutChangeHint); |
494 |
- } |
495 |
- |
496 |
- void QSortFilterProxyModelPrivate::_q_sourceRowsMoved( |
497 |
- const QModelIndex &sourceParent, int /* sourceStart */, int /* sourceEnd */, const QModelIndex &destParent, int /* dest */) |
498 |
- { |
499 |
-- Q_Q(QSortFilterProxyModel); |
500 |
-- |
501 |
-- // Optimize: We only need to clear and update the persistent indexes which are children of |
502 |
-- // sourceParent or destParent |
503 |
-- qDeleteAll(source_index_mapping); |
504 |
-- source_index_mapping.clear(); |
505 |
-- |
506 |
-- update_persistent_indexes(saved_persistent_indexes); |
507 |
-- saved_persistent_indexes.clear(); |
508 |
-- |
509 |
-- if (dynamic_sortfilter && update_source_sort_column()) { |
510 |
-- //update_source_sort_column might have created wrong mapping so we have to clear it again |
511 |
-- qDeleteAll(source_index_mapping); |
512 |
-- source_index_mapping.clear(); |
513 |
-- } |
514 |
-- |
515 |
- QList<QPersistentModelIndex> parents; |
516 |
-- parents << q->mapFromSource(sourceParent); |
517 |
-+ parents << sourceParent; |
518 |
- if (sourceParent != destParent) |
519 |
-- parents << q->mapFromSource(destParent); |
520 |
-- emit q->layoutChanged(parents); |
521 |
-+ parents << destParent; |
522 |
-+ _q_sourceLayoutChanged(parents, QAbstractItemModel::NoLayoutChangeHint); |
523 |
- } |
524 |
- |
525 |
- void QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeInserted( |
526 |
-@@ -1522,42 +1500,21 @@ void QSortFilterProxyModelPrivate::_q_sourceColumnsRemoved( |
527 |
- void QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeMoved( |
528 |
- const QModelIndex &sourceParent, int /* sourceStart */, int /* sourceEnd */, const QModelIndex &destParent, int /* dest */) |
529 |
- { |
530 |
-- Q_Q(QSortFilterProxyModel); |
531 |
-- |
532 |
-- saved_persistent_indexes.clear(); |
533 |
-- |
534 |
- QList<QPersistentModelIndex> parents; |
535 |
-- parents << q->mapFromSource(sourceParent); |
536 |
-+ parents << sourceParent; |
537 |
- if (sourceParent != destParent) |
538 |
-- parents << q->mapFromSource(destParent); |
539 |
-- emit q->layoutAboutToBeChanged(parents); |
540 |
-- |
541 |
-- if (persistent.indexes.isEmpty()) |
542 |
-- return; |
543 |
-- saved_persistent_indexes = store_persistent_indexes(); |
544 |
-+ parents << destParent; |
545 |
-+ _q_sourceLayoutAboutToBeChanged(parents, QAbstractItemModel::NoLayoutChangeHint); |
546 |
- } |
547 |
- |
548 |
- void QSortFilterProxyModelPrivate::_q_sourceColumnsMoved( |
549 |
- const QModelIndex &sourceParent, int /* sourceStart */, int /* sourceEnd */, const QModelIndex &destParent, int /* dest */) |
550 |
- { |
551 |
-- Q_Q(QSortFilterProxyModel); |
552 |
-- |
553 |
-- qDeleteAll(source_index_mapping); |
554 |
-- source_index_mapping.clear(); |
555 |
-- |
556 |
-- update_persistent_indexes(saved_persistent_indexes); |
557 |
-- saved_persistent_indexes.clear(); |
558 |
-- |
559 |
-- if (dynamic_sortfilter && update_source_sort_column()) { |
560 |
-- qDeleteAll(source_index_mapping); |
561 |
-- source_index_mapping.clear(); |
562 |
-- } |
563 |
-- |
564 |
- QList<QPersistentModelIndex> parents; |
565 |
-- parents << q->mapFromSource(sourceParent); |
566 |
-+ parents << sourceParent; |
567 |
- if (sourceParent != destParent) |
568 |
-- parents << q->mapFromSource(destParent); |
569 |
-- emit q->layoutChanged(parents); |
570 |
-+ parents << destParent; |
571 |
-+ _q_sourceLayoutChanged(parents, QAbstractItemModel::NoLayoutChangeHint); |
572 |
- } |
573 |
- |
574 |
- /*! |
575 |
-diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp |
576 |
-index 6b98d9f..7b6c470 100644 |
577 |
---- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp |
578 |
-+++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp |
579 |
-@@ -146,6 +146,7 @@ private slots: |
580 |
- void filterHint(); |
581 |
- |
582 |
- void sourceLayoutChangeLeavesValidPersistentIndexes(); |
583 |
-+ void rowMoveLeavesValidPersistentIndexes(); |
584 |
- |
585 |
- protected: |
586 |
- void buildHierarchy(const QStringList &data, QAbstractItemModel *model); |
587 |
-@@ -4307,5 +4308,50 @@ void tst_QSortFilterProxyModel::sourceLayoutChangeLeavesValidPersistentIndexes() |
588 |
- QVERIFY(persistentIndex.parent().isValid()); |
589 |
- } |
590 |
- |
591 |
-+void tst_QSortFilterProxyModel::rowMoveLeavesValidPersistentIndexes() |
592 |
-+{ |
593 |
-+ DynamicTreeModel model; |
594 |
-+ Q_SET_OBJECT_NAME(model); |
595 |
-+ |
596 |
-+ QList<int> ancestors; |
597 |
-+ for (auto i = 0; i < 5; ++i) |
598 |
-+ { |
599 |
-+ Q_UNUSED(i); |
600 |
-+ ModelInsertCommand insertCommand(&model); |
601 |
-+ insertCommand.setAncestorRowNumbers(ancestors); |
602 |
-+ insertCommand.setStartRow(0); |
603 |
-+ insertCommand.setEndRow(0); |
604 |
-+ insertCommand.doCommand(); |
605 |
-+ ancestors.push_back(0); |
606 |
-+ } |
607 |
-+ |
608 |
-+ QSortFilterProxyModel proxy1; |
609 |
-+ proxy1.setSourceModel(&model); |
610 |
-+ Q_SET_OBJECT_NAME(proxy1); |
611 |
-+ |
612 |
-+ proxy1.setFilterRegExp("1|2"); |
613 |
-+ |
614 |
-+ auto item5 = model.match(model.index(0, 0), Qt::DisplayRole, "5", 1, Qt::MatchRecursive).first(); |
615 |
-+ auto item3 = model.match(model.index(0, 0), Qt::DisplayRole, "3", 1, Qt::MatchRecursive).first(); |
616 |
-+ |
617 |
-+ Q_ASSERT(item5.isValid()); |
618 |
-+ Q_ASSERT(item3.isValid()); |
619 |
-+ |
620 |
-+ QPersistentModelIndex persistentIndex = proxy1.match(proxy1.index(0, 0), Qt::DisplayRole, "2", 1, Qt::MatchRecursive).first(); |
621 |
-+ |
622 |
-+ ModelMoveCommand moveCommand(&model, 0); |
623 |
-+ moveCommand.setAncestorRowNumbers(QList<int>{0, 0, 0, 0}); |
624 |
-+ moveCommand.setStartRow(0); |
625 |
-+ moveCommand.setEndRow(0); |
626 |
-+ moveCommand.setDestRow(0); |
627 |
-+ moveCommand.setDestAncestors(QList<int>{0, 0, 0}); |
628 |
-+ moveCommand.doCommand(); |
629 |
-+ |
630 |
-+ // Calling parent() causes the internalPointer to be used. |
631 |
-+ // Before fixing QTBUG-47711 (moveRows case), that could be |
632 |
-+ // a dangling pointer. |
633 |
-+ QVERIFY(persistentIndex.parent().isValid()); |
634 |
-+} |
635 |
-+ |
636 |
- QTEST_MAIN(tst_QSortFilterProxyModel) |
637 |
- #include "tst_qsortfilterproxymodel.moc" |
638 |
--- |
639 |
-2.7.4 |
640 |
- |
641 |
- |
642 |
|
643 |
diff --git a/dev-qt/qtgui/files/qtgui-5.7.1-qclipboard.patch b/dev-qt/qtgui/files/qtgui-5.7.1-qclipboard.patch |
644 |
deleted file mode 100644 |
645 |
index 42ee58b611f..00000000000 |
646 |
--- a/dev-qt/qtgui/files/qtgui-5.7.1-qclipboard.patch |
647 |
+++ /dev/null |
648 |
@@ -1,39 +0,0 @@ |
649 |
-From 291eba6f8099a0fec8fbd9cf8a1fb67e5c9f4f8d Mon Sep 17 00:00:00 2001 |
650 |
-From: Palo Kisa <palo.kisa@×××××.com> |
651 |
-Date: Mon, 7 Nov 2016 18:27:17 +0100 |
652 |
-Subject: QClipboard: Fix emitting changed() in XCB |
653 |
- |
654 |
-In XCB environment the QClipboard::changed() was not delivered if the |
655 |
-QClipboard::clear() was issued by other Qt app/process. |
656 |
- |
657 |
-If the QClipboard::clear() is used, then the owner in |
658 |
-xcb_xfixes_selection_notify_event_t is XCB_NONE, so we need make the |
659 |
-decission to handle this event by the selection_timestamp and our |
660 |
-m_timestamp[mode]. |
661 |
- |
662 |
-Task-number: QTBUG-56972 |
663 |
-Change-Id: If4c486ac02223eac506465cac7ff1a07bd02a187 |
664 |
-Reviewed-by: Lars Knoll <lars.knoll@××.io> |
665 |
---- |
666 |
- src/plugins/platforms/xcb/qxcbclipboard.cpp | 6 ++++-- |
667 |
- 1 file changed, 4 insertions(+), 2 deletions(-) |
668 |
- |
669 |
-diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp |
670 |
-index d44ebae..40abef4 100644 |
671 |
---- a/src/plugins/platforms/xcb/qxcbclipboard.cpp |
672 |
-+++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp |
673 |
-@@ -723,8 +723,10 @@ void QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_eve |
674 |
- if (mode > QClipboard::Selection) |
675 |
- return; |
676 |
- |
677 |
-- // here we care only about the xfixes events that come from non Qt processes |
678 |
-- if (event->owner != XCB_NONE && event->owner != owner()) { |
679 |
-+ // Note1: Here we care only about the xfixes events that come from other processes. |
680 |
-+ // Note2: If the QClipboard::clear() is issued, event->owner is XCB_NONE, |
681 |
-+ // so we check selection_timestamp to not handle our own QClipboard::clear(). |
682 |
-+ if (event->owner != owner() && event->selection_timestamp > m_timestamp[mode]) { |
683 |
- if (!m_xClipboard[mode]) { |
684 |
- m_xClipboard[mode].reset(new QXcbClipboardMime(mode, this)); |
685 |
- } else { |
686 |
--- |
687 |
-cgit v1.0-4-g1e03 |
688 |
|
689 |
diff --git a/dev-qt/qtgui/files/qtgui-5.7.1-x32.patch b/dev-qt/qtgui/files/qtgui-5.7.1-x32.patch |
690 |
deleted file mode 100644 |
691 |
index 9cfc29d1d08..00000000000 |
692 |
--- a/dev-qt/qtgui/files/qtgui-5.7.1-x32.patch |
693 |
+++ /dev/null |
694 |
@@ -1,34 +0,0 @@ |
695 |
-From 92805a0e9c488e47280e93f65e5378818e340ad1 Mon Sep 17 00:00:00 2001 |
696 |
-From: Laszlo Agocs <laszlo.agocs@××.io> |
697 |
-Date: Mon, 7 Nov 2016 11:23:21 +0100 |
698 |
-Subject: Fix EGL break on Debian X32 |
699 |
- |
700 |
-Change to QT_POINTER_SIZE instead of Q_PROCESSOR_WORDSIZE. The latter |
701 |
-is 8 due to targeting 64-bit, but pointers are 32-bit still in such |
702 |
-builds. For the condition in question it is the pointer size that |
703 |
-matters. |
704 |
- |
705 |
-Task-number: QTBUG-56686 |
706 |
-Change-Id: I96c203cae91ceb8404606de605c4fdb1a02a9d5f |
707 |
-Reviewed-by: Dmitry Shachnev <mitya57@×××××.com> |
708 |
-Reviewed-by: Thiago Macieira <thiago.macieira@×××××.com> |
709 |
---- |
710 |
- src/platformsupport/eglconvenience/qt_egl_p.h | 2 +- |
711 |
- 1 file changed, 1 insertion(+), 1 deletion(-) |
712 |
- |
713 |
-diff --git a/src/platformsupport/eglconvenience/qt_egl_p.h b/src/platformsupport/eglconvenience/qt_egl_p.h |
714 |
-index 615ee4b80a..b1495c9f9d 100644 |
715 |
---- a/src/platformsupport/eglconvenience/qt_egl_p.h |
716 |
-+++ b/src/platformsupport/eglconvenience/qt_egl_p.h |
717 |
-@@ -83,7 +83,7 @@ struct QtEglConverter<uint32_t, uintptr_t> |
718 |
- { return v; } |
719 |
- }; |
720 |
- |
721 |
--#if Q_PROCESSOR_WORDSIZE > 4 |
722 |
-+#if QT_POINTER_SIZE > 4 |
723 |
- template <> |
724 |
- struct QtEglConverter<uintptr_t, uint32_t> |
725 |
- { |
726 |
--- |
727 |
-cgit v1.1-6-g87c4 |
728 |
- |
729 |
|
730 |
diff --git a/dev-qt/qtsql/files/qtsql-5.7.1-mariadb.patch b/dev-qt/qtsql/files/qtsql-5.7.1-mariadb.patch |
731 |
deleted file mode 100644 |
732 |
index 8aede46c3b4..00000000000 |
733 |
--- a/dev-qt/qtsql/files/qtsql-5.7.1-mariadb.patch |
734 |
+++ /dev/null |
735 |
@@ -1,56 +0,0 @@ |
736 |
-From d25346417238b7dc0fb37359a9b56eff2908a5dc Mon Sep 17 00:00:00 2001 |
737 |
-From: =?utf8?q?Daniel=20Vr=C3=A1til?= <daniel.vratil@××××.com> |
738 |
-Date: Mon, 18 Sep 2017 22:33:55 +0200 |
739 |
-Subject: [PATCH] Only call mysql_library_end() once when using MariaDB |
740 |
- |
741 |
-MariaDB allows only a single call to mysql_library_end(), all subsequent calls |
742 |
-to mysql_library_init() or any other API call will fail. Since QMYSQLDriver |
743 |
-calls mysql_library_end() function whenever the refcount drops to 0, this |
744 |
-breaks applications that close and reopen database connections. |
745 |
- |
746 |
-This change registers call to mysql_library_init() via qAddPostRoutine() |
747 |
-when compiled against MariaDB, so that we only call it once. |
748 |
- |
749 |
-Task-number: QTBUG-63108 |
750 |
-Change-Id: I22c1f0c5b081216f12596a32748dca25cae919e9 |
751 |
-Reviewed-by: Andy Shaw <andy.shaw@××.io> |
752 |
---- |
753 |
- src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 18 ++++++++++++------ |
754 |
- 1 file changed, 12 insertions(+), 6 deletions(-) |
755 |
- |
756 |
-diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp |
757 |
-index ee439fa..6e428fb 100644 |
758 |
---- a/src/sql/drivers/mysql/qsql_mysql.cpp |
759 |
-+++ b/src/sql/drivers/mysql/qsql_mysql.cpp |
760 |
-@@ -1158,16 +1158,22 @@ static void qLibraryInit() |
761 |
- } |
762 |
- # endif // MYSQL_VERSION_ID |
763 |
- #endif // Q_NO_MYSQL_EMBEDDED |
764 |
-+ |
765 |
-+#ifdef MARIADB_BASE_VERSION |
766 |
-+ qAddPostRoutine(mysql_server_end); |
767 |
-+#endif |
768 |
- } |
769 |
- |
770 |
- static void qLibraryEnd() |
771 |
- { |
772 |
--#ifndef Q_NO_MYSQL_EMBEDDED |
773 |
--# if MYSQL_VERSION_ID > 40000 |
774 |
--# if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003 |
775 |
-- mysql_library_end(); |
776 |
--# else |
777 |
-- mysql_server_end(); |
778 |
-+#if !defined(MARIADB_BASE_VERSION) |
779 |
-+# if !defined(Q_NO_MYSQL_EMBEDDED) |
780 |
-+# if MYSQL_VERSION_ID > 40000 |
781 |
-+# if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003 |
782 |
-+ mysql_library_end(); |
783 |
-+# else |
784 |
-+ mysql_server_end(); |
785 |
-+# endif |
786 |
- # endif |
787 |
- # endif |
788 |
- #endif |
789 |
--- |
790 |
-2.7.4 |
791 |
- |
792 |
|
793 |
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-fix-system-ffmpeg.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.0-fix-system-ffmpeg.patch |
794 |
deleted file mode 100644 |
795 |
index 71881e0f77c..00000000000 |
796 |
--- a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-fix-system-ffmpeg.patch |
797 |
+++ /dev/null |
798 |
@@ -1,13 +0,0 @@ |
799 |
-diff -Naur qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h |
800 |
---- qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h 2016-11-23 13:01:20.929772871 -0800 |
801 |
-+++ qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h 2016-11-23 13:02:18.879462854 -0800 |
802 |
-@@ -24,7 +24,9 @@ |
803 |
- // Disable deprecated features which result in spammy compile warnings. This |
804 |
- // list of defines must mirror those in the 'defines' section of BUILD.gn file & |
805 |
- // ffmpeg.gyp file or the headers below will generate different structures! |
806 |
-+#if !defined(USE_SYSTEM_FFMPEG) |
807 |
- #define FF_API_CONVERGENCE_DURATION 0 |
808 |
-+#endif |
809 |
- // Upstream libavcodec/utils.c still uses the deprecated |
810 |
- // av_dup_packet(), causing deprecation warnings. |
811 |
- // The normal fix for such things is to disable the feature as below, |
812 |
|
813 |
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-icu58.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.0-icu58.patch |
814 |
deleted file mode 100644 |
815 |
index ced5367c482..00000000000 |
816 |
--- a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-icu58.patch |
817 |
+++ /dev/null |
818 |
@@ -1,51 +0,0 @@ |
819 |
-diff -Naur qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp |
820 |
---- qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp 2016-11-15 17:07:38.680665385 -0800 |
821 |
-+++ qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp 2016-11-15 17:12:17.564001354 -0800 |
822 |
-@@ -26,6 +26,9 @@ |
823 |
- #include "wtf/StdLibExtras.h" |
824 |
- #include "wtf/text/CharacterNames.h" |
825 |
- |
826 |
-+#include <unicode/uchar.h> |
827 |
-+#include <unicode/uvernum.h> |
828 |
-+ |
829 |
- namespace blink { |
830 |
- |
831 |
- unsigned numGraphemeClusters(const String& string) |
832 |
-@@ -122,13 +125,18 @@ |
833 |
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), 0, B(0, 0, 0, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 0, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 0, 0, 0, 0, 0, 0) }, // DEL |
834 |
- }; |
835 |
- |
836 |
-+#if U_ICU_VERSION_MAJOR_NUM >= 58 |
837 |
-+#define BA_LB_COUNT (U_LB_COUNT - 3) |
838 |
-+#else |
839 |
-+#define BA_LB_COUNT U_LB_COUNT |
840 |
-+#endif |
841 |
- // Line breaking table for CSS word-break: break-all. This table differs from |
842 |
- // asciiLineBreakTable in: |
843 |
- // - Indices are Line Breaking Classes defined in UAX#14 Unicode Line Breaking |
844 |
- // Algorithm: http://unicode.org/reports/tr14/#DescriptionOfProperties |
845 |
- // - 1 indicates additional break opportunities. 0 indicates to fallback to |
846 |
- // normal line break, not "prohibit break." |
847 |
--static const unsigned char breakAllLineBreakClassTable[][U_LB_COUNT / 8 + 1] = { |
848 |
-+static const unsigned char breakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = { |
849 |
- // XX AI AL B2 BA BB BK CB CL CM CR EX GL HY ID IN IS LF NS NU OP PO PR QU SA SG SP SY ZW NL WJ H2 H3 JL JT JV CP CJ HL RI |
850 |
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX |
851 |
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AI |
852 |
-@@ -178,7 +186,7 @@ |
853 |
- #undef AL |
854 |
- |
855 |
- static_assert(WTF_ARRAY_LENGTH(asciiLineBreakTable) == asciiLineBreakTableLastChar - asciiLineBreakTableFirstChar + 1, "asciiLineBreakTable should be consistent"); |
856 |
--static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == U_LB_COUNT, "breakAllLineBreakClassTable should be consistent"); |
857 |
-+static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == BA_LB_COUNT, "breakAllLineBreakClassTable should be consistent"); |
858 |
- |
859 |
- static inline bool shouldBreakAfter(UChar lastCh, UChar ch, UChar nextCh) |
860 |
- { |
861 |
-@@ -209,7 +217,7 @@ |
862 |
- |
863 |
- static inline bool shouldBreakAfterBreakAll(ULineBreak lastLineBreak, ULineBreak lineBreak) |
864 |
- { |
865 |
-- if (lineBreak >= 0 && lineBreak < U_LB_COUNT && lastLineBreak >= 0 && lastLineBreak < U_LB_COUNT) { |
866 |
-+ if (lineBreak >= 0 && lineBreak < BA_LB_COUNT && lastLineBreak >= 0 && lastLineBreak < BA_LB_COUNT) { |
867 |
- const unsigned char* tableRow = breakAllLineBreakClassTable[lastLineBreak]; |
868 |
- return tableRow[lineBreak / 8] & (1 << (lineBreak % 8)); |
869 |
- } |
870 |
|
871 |
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-undef-madv_free.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.0-undef-madv_free.patch |
872 |
deleted file mode 100644 |
873 |
index 193e7136206..00000000000 |
874 |
--- a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-undef-madv_free.patch |
875 |
+++ /dev/null |
876 |
@@ -1,33 +0,0 @@ |
877 |
-From fa8cdb3a32c377b6290d0a92d2522186bcd48293 Mon Sep 17 00:00:00 2001 |
878 |
-From: Allan Sandfeld Jensen <allan.jensen@××××××××××××.com> |
879 |
-Date: Tue, 9 Aug 2016 16:21:29 +0200 |
880 |
-Subject: Do not depend on Linux 4.5 |
881 |
- |
882 |
-Avoid using MADV_FREE that was only recently added to Linux. It will fail when |
883 |
-run on older Linux kernels. |
884 |
- |
885 |
-Change-Id: I9b0369fb31402f088b2327c12f70dd39f5e4c8c0 |
886 |
-Reviewed-by: Peter Varga <pvarga@××××××××××××.hu> |
887 |
---- |
888 |
- chromium/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp | 5 +++++ |
889 |
- 1 file changed, 5 insertions(+) |
890 |
- |
891 |
-diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp |
892 |
-index 12c9a7b..1639013 100644 |
893 |
---- a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp |
894 |
-+++ b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp |
895 |
-@@ -39,6 +39,11 @@ |
896 |
- |
897 |
- #include <sys/mman.h> |
898 |
- |
899 |
-+#if OS(LINUX) && defined(MADV_FREE) |
900 |
-+// Added in Linux 4.5, but we don't want to depend on 4.5 at runtime |
901 |
-+#undef MADV_FREE |
902 |
-+#endif |
903 |
-+ |
904 |
- #ifndef MADV_FREE |
905 |
- #define MADV_FREE MADV_DONTNEED |
906 |
- #endif |
907 |
--- |
908 |
-cgit v1.0-4-g1e03 |
909 |
- |
910 |
|
911 |
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.1-fix-audio-detection.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.1-fix-audio-detection.patch |
912 |
deleted file mode 100644 |
913 |
index 597554e685c..00000000000 |
914 |
--- a/dev-qt/qtwebengine/files/qtwebengine-5.7.1-fix-audio-detection.patch |
915 |
+++ /dev/null |
916 |
@@ -1,23 +0,0 @@ |
917 |
-# dev-qt/qtwebengine: Fix detecting audio backends. |
918 |
- |
919 |
-# The upstream change doesn't really work for us, so we'll make |
920 |
-# it work with us. |
921 |
-# Gentoo-Bug: https://bugs.gentoo.org/603498 |
922 |
- |
923 |
---- /src/core/config/linux.pri 2016-12-23 00:05:41.057955774 +0200 |
924 |
-+++ /src/core/config/linux.pri 2016-12-23 00:09:39.000573909 +0200 |
925 |
-@@ -35,12 +35,12 @@ |
926 |
- contains(QT_CONFIG, system-png): GYP_CONFIG += use_system_libpng=1 |
927 |
- contains(QT_CONFIG, system-jpeg): GYP_CONFIG += use_system_libjpeg=1 |
928 |
- contains(QT_CONFIG, system-harfbuzz): GYP_CONFIG += use_system_harfbuzz=1 |
929 |
--contains(QT_CONFIG, pulseaudio) { |
930 |
-+use?(pulseaudio) { |
931 |
- GYP_CONFIG += use_pulseaudio=1 |
932 |
- } else { |
933 |
- GYP_CONFIG += use_pulseaudio=0 |
934 |
- } |
935 |
--contains(QT_CONFIG, alsa) { |
936 |
-+use?(alsa) { |
937 |
- GYP_CONFIG += use_alsa=1 |
938 |
- } else { |
939 |
- GYP_CONFIG += use_alsa=0 |
940 |
|
941 |
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.1-gcc-7.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.1-gcc-7.patch |
942 |
deleted file mode 100644 |
943 |
index a5c3072a477..00000000000 |
944 |
--- a/dev-qt/qtwebengine/files/qtwebengine-5.7.1-gcc-7.patch |
945 |
+++ /dev/null |
946 |
@@ -1,144 +0,0 @@ |
947 |
-From 64fdd317d4127142ad9e967197a2df6ac81ef55f Mon Sep 17 00:00:00 2001 |
948 |
-From: Allan Sandfeld Jensen <allan.jensen@××.io> |
949 |
-Date: Wed, 29 Mar 2017 17:42:18 +0200 |
950 |
-Subject: [PATCH] Fix build with GCC 7.0 |
951 |
-MIME-Version: 1.0 |
952 |
-Content-Type: text/plain; charset=utf8 |
953 |
-Content-Transfer-Encoding: 8bit |
954 |
- |
955 |
-Fixes some ambiguities and outright wrong code GCC 7 doesn't accept but |
956 |
-earlier compilers did. |
957 |
- |
958 |
-Task-number:QTBUG-59776 |
959 |
-Change-Id: I012f121842ac6cde49db0d571efc62aabe2115e3 |
960 |
-Reviewed-by: Michael Brüning <michael.bruning@××.io> |
961 |
---- |
962 |
- .../mojo/public/cpp/bindings/interface_ptr_info.h | 2 +- |
963 |
- .../third_party/WebKit/Source/wtf/LinkedHashSet.h | 2 ++ |
964 |
- chromium/v8/src/objects-body-descriptors.h | 2 +- |
965 |
- chromium/v8/src/objects-inl.h | 19 +++++++++++++++++++ |
966 |
- chromium/v8/src/objects.h | 16 ++-------------- |
967 |
- 5 files changed, 25 insertions(+), 16 deletions(-) |
968 |
- |
969 |
-diff --git a/src/3rdparty/chromium/mojo/public/cpp/bindings/interface_ptr_info.h b/src/3rdparty/chromium/mojo/public/cpp/bindings/interface_ptr_info.h |
970 |
-index 5bd29d5..c94a5ac 100644 |
971 |
---- a/src/3rdparty/chromium/mojo/public/cpp/bindings/interface_ptr_info.h |
972 |
-+++ b/src/3rdparty/chromium/mojo/public/cpp/bindings/interface_ptr_info.h |
973 |
-@@ -34,7 +34,7 @@ class InterfacePtrInfo { |
974 |
- |
975 |
- InterfacePtrInfo& operator=(InterfacePtrInfo&& other) { |
976 |
- if (this != &other) { |
977 |
-- handle_ = other.handle_.Pass(); |
978 |
-+ handle_ = std::move(other.handle_); |
979 |
- version_ = other.version_; |
980 |
- other.version_ = 0u; |
981 |
- } |
982 |
--- |
983 |
-2.7.4 |
984 |
-From 493441248c82d9f39d0947e3bbf4571736e1cf85 Mon Sep 17 00:00:00 2001 |
985 |
-From: Allan Sandfeld Jensen <allan.jensen@××.io> |
986 |
-Date: Wed, 29 Mar 2017 15:53:00 +0200 |
987 |
-Subject: [PATCH 1/1] Fix build with GCC 7.0 |
988 |
-MIME-Version: 1.0 |
989 |
-Content-Type: text/plain; charset=utf8 |
990 |
-Content-Transfer-Encoding: 8bit |
991 |
- |
992 |
-Fixes a few problems with using undeclared functions and ambigious |
993 |
-code. |
994 |
- |
995 |
-Task-number: QTBUG-59776 |
996 |
-Change-Id: I59813919b4867d5dd3499a45baed004a1a1c1a3c |
997 |
-Reviewed-by: Michael Brüning <michael.bruning@××.io> |
998 |
---- |
999 |
- chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h | 2 ++ |
1000 |
- .../third_party/pdfium/fpdfsdk/javascript/global.cpp | 8 ++++---- |
1001 |
- chromium/v8/src/objects-body-descriptors.h | 2 +- |
1002 |
- chromium/v8/src/objects-inl.h | 18 ++++++++++++++++++ |
1003 |
- chromium/v8/src/objects.h | 16 ++-------------- |
1004 |
- 5 files changed, 27 insertions(+), 19 deletions(-) |
1005 |
- |
1006 |
-diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h |
1007 |
-index e85c72f..6f94cd6 100644 |
1008 |
---- a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h |
1009 |
-+++ b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h |
1010 |
-@@ -542,6 +542,8 @@ inline LinkedHashSet<T, U, V, W>& LinkedHashSet<T, U, V, W>::operator=(LinkedHas |
1011 |
- return *this; |
1012 |
- } |
1013 |
- |
1014 |
-+inline void swapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b); |
1015 |
-+ |
1016 |
- template<typename T, typename U, typename V, typename W> |
1017 |
- inline void LinkedHashSet<T, U, V, W>::swap(LinkedHashSet& other) |
1018 |
- { |
1019 |
-diff --git a/src/3rdparty/chromium/v8/src/objects-body-descriptors.h b/src/3rdparty/chromium/v8/src/objects-body-descriptors.h |
1020 |
-index 91cb888..a1c3634 100644 |
1021 |
---- a/src/3rdparty/chromium/v8/src/objects-body-descriptors.h |
1022 |
-+++ b/src/3rdparty/chromium/v8/src/objects-body-descriptors.h |
1023 |
-@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase { |
1024 |
- |
1025 |
- template <typename StaticVisitor> |
1026 |
- static inline void IterateBody(HeapObject* obj, int object_size) { |
1027 |
-- IterateBody(obj); |
1028 |
-+ IterateBody<StaticVisitor>(obj); |
1029 |
- } |
1030 |
- }; |
1031 |
- |
1032 |
-diff --git a/src/3rdparty/chromium/v8/src/objects-inl.h b/src/3rdparty/chromium/v8/src/objects-inl.h |
1033 |
-index 58441d3..4c486ea 100644 |
1034 |
---- a/src/3rdparty/chromium/v8/src/objects-inl.h |
1035 |
-+++ b/src/3rdparty/chromium/v8/src/objects-inl.h |
1036 |
-@@ -7588,6 +7588,24 @@ bool GlobalDictionaryShape::IsDeleted(Dictionary* dict, int entry) { |
1037 |
- } |
1038 |
- |
1039 |
- |
1040 |
-+template <typename Derived, typename Shape, typename Key> |
1041 |
-+inline uint32_t HashTable<Derived,Shape,Key>::Hash(Key key) { |
1042 |
-+ if (Shape::UsesSeed) { |
1043 |
-+ return Shape::SeededHash(key, GetHeap()->HashSeed()); |
1044 |
-+ } else { |
1045 |
-+ return Shape::Hash(key); |
1046 |
-+ } |
1047 |
-+} |
1048 |
-+ |
1049 |
-+template <typename Derived, typename Shape, typename Key> |
1050 |
-+inline uint32_t HashTable<Derived,Shape,Key>::HashForObject(Key key, Object* object) { |
1051 |
-+ if (Shape::UsesSeed) { |
1052 |
-+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); |
1053 |
-+ } else { |
1054 |
-+ return Shape::HashForObject(key, object); |
1055 |
-+ } |
1056 |
-+} |
1057 |
-+ |
1058 |
- bool ObjectHashTableShape::IsMatch(Handle<Object> key, Object* other) { |
1059 |
- return key->SameValue(other); |
1060 |
- } |
1061 |
-diff --git a/src/3rdparty/chromium/v8/src/objects.h b/src/3rdparty/chromium/v8/src/objects.h |
1062 |
-index 7d774be..42da5fa 100644 |
1063 |
---- a/src/3rdparty/chromium/v8/src/objects.h |
1064 |
-+++ b/src/3rdparty/chromium/v8/src/objects.h |
1065 |
-@@ -3194,21 +3194,9 @@ class HashTable : public HashTableBase { |
1066 |
- typedef Shape ShapeT; |
1067 |
- |
1068 |
- // Wrapper methods |
1069 |
-- inline uint32_t Hash(Key key) { |
1070 |
-- if (Shape::UsesSeed) { |
1071 |
-- return Shape::SeededHash(key, GetHeap()->HashSeed()); |
1072 |
-- } else { |
1073 |
-- return Shape::Hash(key); |
1074 |
-- } |
1075 |
-- } |
1076 |
-+ inline uint32_t Hash(Key key); |
1077 |
- |
1078 |
-- inline uint32_t HashForObject(Key key, Object* object) { |
1079 |
-- if (Shape::UsesSeed) { |
1080 |
-- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); |
1081 |
-- } else { |
1082 |
-- return Shape::HashForObject(key, object); |
1083 |
-- } |
1084 |
-- } |
1085 |
-+ inline uint32_t HashForObject(Key key, Object* object); |
1086 |
- |
1087 |
- // Returns a new HashTable object. |
1088 |
- MUST_USE_RESULT static Handle<Derived> New( |
1089 |
--- |
1090 |
-2.7.4 |