aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@qt.io>2024-07-08 12:44:15 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-08-23 08:44:22 +0000
commit9ebdb8b77cb467cea56f983773124e08bb4db059 (patch)
treefc76777afa9bc58670b3c571485e3749ac819771
parent629bb4f89405362de20c09891a29c13496141f5c (diff)
Fix memory leak in QSGBatchRenderer
Make sure the also delete the ClipInfo and RenderNodeElement in the shadow node. Fixes: QTBUG-128283 Pick-to: 6.5 6.2 5.15 Change-Id: Ida00e4eefa0e0dd0ab518a141138561254303e41 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit e94f211c970ff8a342e01400d855216f46372905) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8f389f2ce6060f36046980722937cb74c2a3c7d3)
-rw-r--r--src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
index 2a654e5020..c093d71321 100644
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
@@ -928,7 +928,14 @@ Renderer::~Renderer()
Element *e = n->element();
if (!e->removed)
m_elementsToDelete.add(e);
+ } else if (n->type() == QSGNode::ClipNodeType) {
+ delete n->clipInfo();
+ } else if (n->type() == QSGNode::RenderNodeType) {
+ RenderNodeElement *e = n->renderNodeElement();
+ if (!e->removed)
+ m_elementsToDelete.add(e);
}
+
m_nodeAllocator.release(n);
}