Index: fix-cursortox-crash.patch =================================================================== --- fix-cursortox-crash.patch (revision 0) +++ fix-cursortox-crash.patch (arbetskopia) @@ -0,0 +1,28 @@ +commit cac12f4592477d99ef6fffaad40345bf85ef53b5 +Author: Jiang Jiang +Date: Mon Apr 2 12:32:05 2012 +0200 + + Fix a crash in cursorToX() when new block is added + + When an empty new block is being added, the layoutData->memory data + will be 0, thus QTextEngine::attributes() will return 0. We should + only access the attributes pointer when some text actually exist. + + Task-number: QTBUG-24718 + Change-Id: I9ce9f7b57bccf24099a02832ce30fb6cebfaad33 + +diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp +index ee658d9..16f7150 100644 +--- a/src/gui/text/qtextlayout.cpp ++++ b/src/gui/text/qtextlayout.cpp +@@ -2508,6 +2508,10 @@ qreal QTextLine::cursorToX(int *cursorPos, Edge edge) const + int pos = *cursorPos; + int itm; + const HB_CharAttributes *attributes = eng->attributes(); ++ if (!attributes) { ++ *cursorPos = 0; ++ return x.toReal(); ++ } + while (pos < line.from + line.length && !attributes[pos].charStop) + pos++; + if (pos == line.from + (int)line.length) { Index: PKGBUILD =================================================================== --- PKGBUILD (revision 156051) +++ PKGBUILD (arbetskopia) @@ -5,7 +5,7 @@ pkgbase=qt pkgname=('qt' 'qt-private-headers') pkgver=4.8.1 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url='http://qt-project.org/' license=('GPL3' 'LGPL') @@ -18,18 +18,21 @@ source=("http://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz" 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qtconfig.desktop' - 'gcc47.patch') + 'gcc47.patch' + 'fix-cursortox-crash.patch') md5sums=('7960ba8e18ca31f0c6e4895a312f92ff' 'fc211414130ab2764132e7370f8e5caa' '85179f5e0437514f8639957e1d8baf62' 'f11852b97583610f3dbb669ebc3e21bc' '6b771c8a81dd90b45e8a79afa0e5bbfd' - 'd8a0e81075b290ddc18ecd33b9b7ee22') + 'd8a0e81075b290ddc18ecd33b9b7ee22' + 'bec6ed42e4bf501f1b6c150df00e65b7') build() { cd "${srcdir}"/${_pkgfqn} patch -p1 -i "${srcdir}"/gcc47.patch + patch -p1 -i "${srcdir}"/fix-cursortox-crash.patch export QT4DIR="${srcdir}"/${_pkgfqn} export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}