diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2021-03-22 11:39:24 +0100 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2021-03-22 20:15:12 +0100 |
commit | 68324c56c1b8f4ad5dfcdc6f77abda3eedaf2dfd (patch) | |
tree | 9c04d8e28a87ff631f328ce44904e26e2b2202a8 /src/quick/items/qquicktextnodeengine.cpp | |
parent | 0af76a1c5fe5d2c5ed70154a579175578cee1555 (diff) | |
download | qtdeclarative-68324c56c1b8f4ad5dfcdc6f77abda3eedaf2dfd.tar.gz |
Revert "Use unique_ptr to clarify ownership of QQuickDefaultClipNode objects"
This reverts commit 02c6e7bc3aca42a188b772aa9794b919e60017e7. It broke text
selection, the currentClipNode pointer must not be reset to nullptr even if
ownership is transferred to a node.
Pick-to: 6.1 6.0 5.15
Change-Id: Ia66f7ed4be17916f3725bd3cb2cbd0e7c9d6327a
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/quick/items/qquicktextnodeengine.cpp')
-rw-r--r-- | src/quick/items/qquicktextnodeengine.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/quick/items/qquicktextnodeengine.cpp b/src/quick/items/qquicktextnodeengine.cpp index 38f199ecc0..dd666416e8 100644 --- a/src/quick/items/qquicktextnodeengine.cpp +++ b/src/quick/items/qquicktextnodeengine.cpp @@ -257,7 +257,7 @@ void QQuickTextNodeEngine::processCurrentLine() QVarLengthArray<TextDecoration> pendingOverlines; QVarLengthArray<TextDecoration> pendingStrikeOuts; if (!sortedIndexes.isEmpty()) { - std::unique_ptr<QQuickDefaultClipNode> currentClipNode(m_hasSelection ? new QQuickDefaultClipNode(QRectF()) : nullptr); + QQuickDefaultClipNode *currentClipNode = m_hasSelection ? new QQuickDefaultClipNode(QRectF()) : nullptr; bool currentClipNodeUsed = false; for (int i=0; i<=sortedIndexes.size(); ++i) { BinaryTreeNode *node = nullptr; @@ -305,7 +305,7 @@ void QQuickTextNodeEngine::processCurrentLine() if (currentClipNode != nullptr) { if (!currentClipNodeUsed) { - currentClipNode.reset(); + delete currentClipNode; } else { currentClipNode->setIsRectangular(true); currentClipNode->setRect(currentRect); @@ -314,9 +314,9 @@ void QQuickTextNodeEngine::processCurrentLine() } if (node != nullptr && m_hasSelection) - currentClipNode.reset(new QQuickDefaultClipNode(QRectF())); + currentClipNode = new QQuickDefaultClipNode(QRectF()); else - currentClipNode.reset(nullptr); + currentClipNode = nullptr; currentClipNodeUsed = false; if (node != nullptr) { @@ -336,7 +336,7 @@ void QQuickTextNodeEngine::processCurrentLine() if (node != nullptr) { if (node->selectionState == Selected) { - node->clipNode = currentClipNode.release(); + node->clipNode = currentClipNode; currentClipNodeUsed = true; } |