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
Attachments
For Gerrit Dashboard: QTBUG-70740 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
242308,2 | Fix QQuickRenderControl::invalidate with software renderer | 5.12 | qt/qtdeclarative | Status: MERGED | +2 | 0 |