Date: Wednesday, December 8, 2010 @ 17:39:02 Author: andrea Revision: 102628
upgpkg: qt 4.7.1-2 fix crash when an entire block of text is removed (FS#22025) Added: qt/trunk/fix-qtbug-15857.patch Modified: qt/trunk/PKGBUILD -----------------------+ PKGBUILD | 11 ++++++++--- fix-qtbug-15857.patch | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2010-12-08 18:28:23 UTC (rev 102627) +++ PKGBUILD 2010-12-08 22:39:02 UTC (rev 102628) @@ -4,7 +4,7 @@ pkgname=qt pkgver=4.7.1 -pkgrel=1 +pkgrel=2 pkgdesc='A cross-platform application and UI framework' arch=('i686' 'x86_64') url='http://qt.nokia.com/' @@ -24,12 +24,14 @@ _pkgfqn="qt-everywhere-opensource-src-${pkgver}" source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz" 'assistant.desktop' 'designer.desktop' 'linguist.desktop' - 'qtconfig.desktop') + 'qtconfig.desktop' + 'fix-qtbug-15857.patch') md5sums=('6f88d96507c84e9fea5bf3a71ebeb6d7' 'fc211414130ab2764132e7370f8e5caa' '85179f5e0437514f8639957e1d8baf62' 'f11852b97583610f3dbb669ebc3e21bc' - '6b771c8a81dd90b45e8a79afa0e5bbfd') + '6b771c8a81dd90b45e8a79afa0e5bbfd' + 'c359d7b8c3a7fdd99512feaab8c2e26b') build() { unset QMAKESPEC @@ -39,6 +41,9 @@ cd $srcdir/$_pkgfqn + # Already fixed upstream + patch -Np1 -i ${srcdir}/fix-qtbug-15857.patch + sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf sed -i "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" mkspecs/common/g++.conf Added: fix-qtbug-15857.patch =================================================================== --- fix-qtbug-15857.patch (rev 0) +++ fix-qtbug-15857.patch 2010-12-08 22:39:02 UTC (rev 102628) @@ -0,0 +1,32 @@ +From 6ae84f1183e91c910ca92a55e37f8254ace805c0 Mon Sep 17 00:00:00 2001 +From: Jiang Jiang <jiang.ji...@nokia.com> +Date: Mon, 6 Dec 2010 13:07:36 +0100 +Subject: [PATCH] Fix QTextEdit::selectAll crash from textChanged() + +Doing selectAll() after the entire block of text has been removed +will cause this crash, because we didn't check if the block we +found is valid or not. + +Task-number: QTBUG-15857 +Reviewed-by: Eskil +--- + src/gui/text/qtextcursor.cpp | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/src/gui/text/qtextcursor.cpp b/src/gui/text/qtextcursor.cpp +index 769ab2f..f73cc4b 100644 +--- a/src/gui/text/qtextcursor.cpp ++++ b/src/gui/text/qtextcursor.cpp +@@ -363,6 +363,9 @@ bool QTextCursorPrivate::movePosition(QTextCursor::MoveOperation op, QTextCursor + bool adjustX = true; + QTextBlock blockIt = block(); + ++ if (!blockIt.isValid()) ++ return false; ++ + if (op >= QTextCursor::Left && op <= QTextCursor::WordRight + && blockIt.textDirection() == Qt::RightToLeft) { + if (op == QTextCursor::Left) +-- +1.6.1 +