aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktextnodeengine.cpp
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2023-11-23 13:18:49 -0700
committerAxel Spoerl <axel.spoerl@qt.io>2023-12-12 23:44:45 +0000
commit9b93c41362155dc92d0a19a0268a8813e99de4bf (patch)
tree75535af08bb9010a3c68c5880c2ac9a0fbf6df99 /src/quick/items/qquicktextnodeengine.cpp
parent4077b05949442eeb2fa4d16a435d476eb00b55a7 (diff)
Avoid adding empty BinaryTreeNodes during text processing
A crash is possible in calculateBoudingRect() (called from QSGSoftwareGlyphNode::setGlyphs()) if QRawFont has a null font engine. This seems to coincide with empty glyph runs; and anyway it seems useless to keep nodes corresponding to empty glyph runs. Pick-to: 6.7 Change-Id: I1c68e472fe75ab9a8bd63c74cb51f81c642c4203 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/quick/items/qquicktextnodeengine.cpp')
-rw-r--r--src/quick/items/qquicktextnodeengine.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/quick/items/qquicktextnodeengine.cpp b/src/quick/items/qquicktextnodeengine.cpp
index 9f43bec2a0..1e437a126d 100644
--- a/src/quick/items/qquicktextnodeengine.cpp
+++ b/src/quick/items/qquicktextnodeengine.cpp
@@ -694,6 +694,9 @@ void QQuickTextNodeEngine::mergeProcessedNodes(QList<BinaryTreeNode *> *regularN
BinaryTreeNode *node = m_processedNodes.data() + i;
if (node->image.isNull()) {
+ if (node->glyphRun.isEmpty())
+ continue;
+
BinaryTreeNodeKey key(node);
QList<BinaryTreeNode *> &nodes = map[key];