diff options
author | Edward Welbourne <edward.welbourne@theqtcompany.com> | 2016-05-20 14:57:25 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2016-06-01 10:02:35 +0000 |
commit | ddb60df2634ae97ae85ea5b6021283be098efed4 (patch) | |
tree | 3e7483fe262ba889c1adc4b9254b781349144d30 /src/quick/items/qquicktextnodeengine.cpp | |
parent | f18841643926e01fd3fdb1c13f4b3060699cd618 (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>
Diffstat (limited to 'src/quick/items/qquicktextnodeengine.cpp')
-rw-r--r-- | src/quick/items/qquicktextnodeengine.cpp | 5 |
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); |