diff options
author | root <root@rshg054.dnsready.net> | 2012-04-16 00:01:18 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-04-16 00:01:18 +0000 |
commit | ea3d877b99c32e3a9e00ab220440d4518430e5bc (patch) | |
tree | 8cf0d286f935fd9e00eb3854d971c165c749d7bf /extra/qt/fix-cursortox-crash.patch | |
parent | f06b9295f0e60a0faa0d3231a0d0b3f2358d8459 (diff) |
Mon Apr 16 00:01:18 UTC 2012
Diffstat (limited to 'extra/qt/fix-cursortox-crash.patch')
-rw-r--r-- | extra/qt/fix-cursortox-crash.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/extra/qt/fix-cursortox-crash.patch b/extra/qt/fix-cursortox-crash.patch new file mode 100644 index 000000000..fbc9c1370 --- /dev/null +++ b/extra/qt/fix-cursortox-crash.patch @@ -0,0 +1,32 @@ +Index: fix-cursortox-crash.patch +=================================================================== +--- fix-cursortox-crash.patch (revision 0) ++++ fix-cursortox-crash.patch (arbetskopia) +#commit cac12f4592477d99ef6fffaad40345bf85ef53b5 +#Author: Jiang Jiang <jiang.jiang@nokia.com> +#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) { |