aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@theqtcompany.com>2016-05-20 14:57:25 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2016-06-01 10:02:35 +0000
commitddb60df2634ae97ae85ea5b6021283be098efed4 (patch)
tree3e7483fe262ba889c1adc4b9254b781349144d30
parentf18841643926e01fd3fdb1c13f4b3060699cd618 (diff)
QQuickTextNodeEngine: early out if no document layout.
As Coverity (CID 22302) points out, qobject_cast<> can return NULL; if we don't get a document layout, then we have no frame decorations to add to it. Change-Id: I2cd428456b3a3b24a28a5dd18ce948a8e95d21cb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-rw-r--r--src/quick/items/qquicktextnodeengine.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/quick/items/qquicktextnodeengine.cpp b/src/quick/items/qquicktextnodeengine.cpp
index 18cb1d0083..417e2483df 100644
--- a/src/quick/items/qquicktextnodeengine.cpp
+++ b/src/quick/items/qquicktextnodeengine.cpp
@@ -636,9 +636,12 @@ void QQuickTextNodeEngine::addBorder(const QRectF &rect, qreal border,
void QQuickTextNodeEngine::addFrameDecorations(QTextDocument *document, QTextFrame *frame)
{
QTextDocumentLayout *documentLayout = qobject_cast<QTextDocumentLayout *>(document->documentLayout());
- QTextFrameFormat frameFormat = frame->format().toFrameFormat();
+ if (Q_UNLIKELY(!documentLayout))
+ return;
+ QTextFrameFormat frameFormat = frame->format().toFrameFormat();
QTextTable *table = qobject_cast<QTextTable *>(frame);
+
QRectF boundingRect = table == 0
? documentLayout->frameBoundingRect(frame)
: documentLayout->tableBoundingRect(table);