revert qlist.h commit that seems to induce crashes in qDeleteAll<QList... (QTBUG-22037)
This commit is contained in:
parent
59d529bafa
commit
a9a1095ff8
|
@ -0,0 +1,41 @@
|
||||||
|
diff -up qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h.QTBUG-22037 qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h
|
||||||
|
--- qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h.QTBUG-22037 2011-10-03 22:44:32.000000000 -0500
|
||||||
|
+++ qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h 2011-10-15 14:25:52.238694974 -0500
|
||||||
|
@@ -769,26 +769,18 @@ Q_OUTOFLINE_TEMPLATE void QList<T>::clea
|
||||||
|
template <typename T>
|
||||||
|
Q_OUTOFLINE_TEMPLATE int QList<T>::removeAll(const T &_t)
|
||||||
|
{
|
||||||
|
- int index = indexOf(_t);
|
||||||
|
- if (index == -1)
|
||||||
|
- return 0;
|
||||||
|
-
|
||||||
|
+ detachShared();
|
||||||
|
const T t = _t;
|
||||||
|
- detach();
|
||||||
|
-
|
||||||
|
- Node *i = reinterpret_cast<Node *>(p.at(index));
|
||||||
|
- Node *e = reinterpret_cast<Node *>(p.end());
|
||||||
|
- Node *n = i;
|
||||||
|
- node_destruct(i);
|
||||||
|
- while (++i != e) {
|
||||||
|
- if (i->t() == t)
|
||||||
|
- node_destruct(i);
|
||||||
|
- else
|
||||||
|
- *n++ = *i;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- int removedCount = e - n;
|
||||||
|
- d->end -= removedCount;
|
||||||
|
+ int removedCount=0, i=0;
|
||||||
|
+ Node *n;
|
||||||
|
+ while (i < p.size())
|
||||||
|
+ if ((n = reinterpret_cast<Node *>(p.at(i)))->t() == t) {
|
||||||
|
+ node_destruct(n);
|
||||||
|
+ p.remove(i);
|
||||||
|
+ ++removedCount;
|
||||||
|
+ } else {
|
||||||
|
+ ++i;
|
||||||
|
+ }
|
||||||
|
return removedCount;
|
||||||
|
}
|
||||||
|
|
9
qt.spec
9
qt.spec
|
@ -11,7 +11,7 @@ Summary: Qt toolkit
|
||||||
Name: qt
|
Name: qt
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 4.8.0
|
Version: 4.8.0
|
||||||
Release: 0.14.rc1%{?dist}
|
Release: 0.15.rc1%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
||||||
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
|
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
|
||||||
|
@ -76,6 +76,9 @@ Patch67: qt-everywhere-opensource-src-4.8.0-beta1-s390.patch
|
||||||
# -Wall + -Werror = fail
|
# -Wall + -Werror = fail
|
||||||
Patch68: webkit-qtwebkit-2.2-no_Werror.patch
|
Patch68: webkit-qtwebkit-2.2-no_Werror.patch
|
||||||
|
|
||||||
|
# revert qlist.h commit that seems to induce crashes in qDeleteAll<QList (QTBUG-22037)
|
||||||
|
Patch69: qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch
|
||||||
|
|
||||||
# upstream patches
|
# upstream patches
|
||||||
|
|
||||||
# security patches
|
# security patches
|
||||||
|
@ -392,6 +395,7 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
|
||||||
pushd src/3rdparty/webkit
|
pushd src/3rdparty/webkit
|
||||||
%patch68 -p1 -b .no_Werror
|
%patch68 -p1 -b .no_Werror
|
||||||
popd
|
popd
|
||||||
|
%patch69 -p1 -b .QTBUG-22037
|
||||||
|
|
||||||
# upstream patches
|
# upstream patches
|
||||||
|
|
||||||
|
@ -1024,6 +1028,9 @@ fi
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Oct 15 2011 Rex Dieter <rdieter@fedoraproject.org> 4.8.0-0.15.rc1
|
||||||
|
- revert qlist.h commit that seems to induce crashes in qDeleteAll<QList... (QTBUG-22037)
|
||||||
|
|
||||||
* Sat Oct 15 2011 Rex Dieter <rdieter@fedoraproject.org> 4.8.0-0.14.rc1
|
* Sat Oct 15 2011 Rex Dieter <rdieter@fedoraproject.org> 4.8.0-0.14.rc1
|
||||||
- pkgconfig-style deps
|
- pkgconfig-style deps
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue