include crasher workaround (#1259472,kde#346118)

This commit is contained in:
Rex Dieter 2016-05-31 09:37:04 -05:00
parent 9afcafa183
commit 1281fb4c82
2 changed files with 26 additions and 1 deletions

View File

@ -22,7 +22,7 @@
Summary: Qt5 - QtDeclarative component
Name: qt5-%{qt_module}
Version: 5.6.0
Release: 10%{?prerelease:.%{prerelease}}%{?dist}
Release: 11%{?prerelease:.%{prerelease}}%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
License: LGPLv2 with exceptions or GPLv3 with exceptions
@ -50,6 +50,8 @@ Patch29: 0029-Avoid-div-by-zero-when-nothing-is-rendered.patch
BuildRequires: double-conversion-devel
%endif
Patch100: qtdeclarative-system_doubleconv.patch
# https://bugs.kde.org/show_bug.cgi?id=346118#c108
Patch101: qtdeclarative-kdebug346118.patch
## upstream patches under review
# Check-for-NULL-from-glGetStrin
@ -126,6 +128,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%patch100 -p1 -b .system_doubleconv
rm -rfv src/3rdparty/double-conversion
%endif
%patch101 -p0 -b .kdebug346118
%patch500 -p1 -b .Check-for-NULL-from-glGetString
@ -275,6 +278,9 @@ make check -k -C %{_target_platform}/tests ||:
%changelog
* Tue May 31 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-11
- include crasher workaround (#1259472,kde#346118)
* Sat May 28 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-10
- macro'ize no_sse2 hack (to make it easier to enable/disable)
- re-introduce -fno-delete-null-pointer-checks here (following upstream)

View File

@ -0,0 +1,19 @@
--- src/qml/util/qqmladaptormodel.cpp.orig 2016-05-27 17:06:31.192332166 -0300
+++ src/qml/util/qqmladaptormodel.cpp 2016-05-27 18:37:27.764552053 -0300
@@ -163,8 +163,14 @@ public:
signalIndexes.append(propertyId + signalOffset);
}
- for (int i = 0, c = items.count(); i < c; ++i) {
- QQmlDelegateModelItem *item = items.at(i);
+ const QList<QQmlDelegateModelItem *> copy = items;
+ for (int i = 0, c = copy.count(); i < c; ++i) {
+ // Applying the same logic used in QQmlDelegateModel::_q_itemsRemoved().
+ QQmlDelegateModelItem *item = copy.at(i);
+ if (!items.contains(item)) {
+ continue;
+ }
+
const int idx = item->modelIndex();
if (idx >= index && idx < index + count) {
for (int i = 0; i < signalIndexes.count(); ++i)