Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.9.6
Description
When a QWebEngineView is destroyed, the nodes in QQuickRenderControl::invalidate() are not cleaned since d->initialized is false (QQuickRenderControl::initialize(QOpenGLContext *gl) is not called with the software renderer). This means that DelegatedFrameNode::~DelegatedFrameNode, which holds a QVector<QSharedPointer<QSGTexture>>, is never called.
Steps to reproduce with QWebEngine_MemoryLeak.zip:
- Run QWebEngine_MemoryLeak
- Put a breakpoint on DelegatedFrameNode::DelegatedFrameNode and on DelegatedFrameNode::~DelegatedFrameNode
- Click on refresh
- With QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software) in main.cpp, the destructor is not called