mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-05 09:47:19 +08:00
34 lines
1.2 KiB
Diff
34 lines
1.2 KiB
Diff
From cac12f4592477d99ef6fffaad40345bf85ef53b5 Mon Sep 17 00:00:00 2001
|
|
From: Jiang Jiang <jiang.jiang@nokia.com>
|
|
Date: Mon, 2 Apr 2012 12:32:05 +0200
|
|
Subject: [PATCH] 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
|
|
---
|
|
src/gui/text/qtextlayout.cpp | 4 ++++
|
|
1 files changed, 4 insertions(+), 0 deletions(-)
|
|
|
|
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) {
|
|
--
|
|
1.7.7.4
|
|
|