diff options
author | Andrei Golubev <andrei.golubev@qt.io> | 2022-06-13 12:47:34 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-06-18 04:18:17 +0000 |
commit | d23ee198656db1998e213d6befaa93e3d79c2d91 (patch) | |
tree | e1aaa0ab1fcda1a6d2f68259ae5109447de5935a | |
parent | efc46677dca4402bc37aa4352d3669b5f3bb048d (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.cpp | 2 |
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(); |