diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquicktextedit.cpp | 6 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit_p_p.h | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index b042e30483..fdaef6df8e 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -1777,8 +1777,12 @@ QSGNode *QQuickTextEdit::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData * d->updateType = QQuickTextEditPrivate::UpdateNone; - if (!oldNode) // If we had any text node references, they were deleted along with the root node + if (!oldNode) { + // If we had any QQuickTextNode node references, they were deleted along with the root node + // But here we must delete the Node structures in textNodeMap + qDeleteAll(d->textNodeMap); d->textNodeMap.clear(); + } RootNode *rootNode = static_cast<RootNode *>(oldNode); TextNodeIterator nodeIterator = d->textNodeMap.begin(); diff --git a/src/quick/items/qquicktextedit_p_p.h b/src/quick/items/qquicktextedit_p_p.h index 25681c89f6..0cf7ee2850 100644 --- a/src/quick/items/qquicktextedit_p_p.h +++ b/src/quick/items/qquicktextedit_p_p.h @@ -111,6 +111,11 @@ public: { } + ~QQuickTextEditPrivate() + { + qDeleteAll(textNodeMap); + } + static QQuickTextEditPrivate *get(QQuickTextEdit *item) { return static_cast<QQuickTextEditPrivate *>(QObjectPrivate::get(item)); } |