aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrei Golubev <andrei.golubev@qt.io>2022-06-13 12:47:34 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-06-18 04:18:17 +0000
commitd23ee198656db1998e213d6befaa93e3d79c2d91 (patch)
treee1aaa0ab1fcda1a6d2f68259ae5109447de5935a
parentefc46677dca4402bc37aa4352d3669b5f3bb048d (diff)
Do not leak in QQuickTextEdit::updatePaintNode()
Ensure all nodes created via d->createTextNode() within updatePaintNode have a parent. Some of the nodes missed parents due to overwrite of the local variable happening before addCurrentTextNodeToRoot() is called Task-number: QTBUG-103819 Change-Id: I7261f6ad66c12e99601761073a2b0e931ff475ce Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit b616028dae933e7ff6142d41bdafee8ad445a8ec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/quick/items/qquicktextedit.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp
index af99ebba19..fa4fb71be1 100644
--- a/src/quick/items/qquicktextedit.cpp
+++ b/src/quick/items/qquicktextedit.cpp
@@ -2238,6 +2238,8 @@ QSGNode *QQuickTextEdit::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *
if (inView) {
if (!engine.hasContents()) {
+ if (node && !node->parent())
+ d->addCurrentTextNodeToRoot(&engine, rootNode, node, nodeIterator, nodeStart);
node = d->createTextNode();
updateNodeTransform(node, nodeOffset);
nodeStart = block.position();