summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKirill Burtsev <kirill.burtsev@qt.io>2022-02-02 19:05:33 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-02-08 16:10:26 +0000
commitb43c44fde9391f833026a6a36ba957e81a3bb609 (patch)
treee4634b2ef7aa189bb37deb60c8c19542150c29c2 /src
parent3c356d8f275d31bbba17fc6c1ebf0d7330dc11ef (diff)
Fix accumulation of compositor-observer bindings for skia-on-gl
One of Compositor's derived classes, DisplaySkiaOutputDevice, was missing call to 'unbind' from its observer, leading to not releasing binding from global cache on destroy. Since unbind is done on destroy, remove all explicit calls to unbind from derived classes, and just do them in their base implementations. Ammends b117909825. Change-Id: I75c909eaa22ca1946ad67aa5093a8ee268c3562b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 16b2976e2c983cabe6011cd732e3ec46e3402d22) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/core/compositor/compositor.h4
-rw-r--r--src/core/compositor/display_gl_output_surface.cpp1
-rw-r--r--src/core/compositor/display_software_output_surface.cpp6
-rw-r--r--src/webenginequick/render_widget_host_view_qt_delegate_quick.cpp1
-rw-r--r--src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp1
5 files changed, 2 insertions, 11 deletions
diff --git a/src/core/compositor/compositor.h b/src/core/compositor/compositor.h
index 7968e8201..b0c7d212e 100644
--- a/src/core/compositor/compositor.h
+++ b/src/core/compositor/compositor.h
@@ -125,7 +125,7 @@ public:
protected:
Observer() = default;
- ~Observer() = default;
+ ~Observer() { if (m_binding) unbind(); }
private:
Binding *m_binding = nullptr;
@@ -177,7 +177,7 @@ public:
protected:
Compositor(Type type) : m_type(type) { }
- virtual ~Compositor() = default;
+ virtual ~Compositor() { if (m_binding) unbind(); }
private:
template<typename T>
diff --git a/src/core/compositor/display_gl_output_surface.cpp b/src/core/compositor/display_gl_output_surface.cpp
index 7f27b6ac4..cdc93ce62 100644
--- a/src/core/compositor/display_gl_output_surface.cpp
+++ b/src/core/compositor/display_gl_output_surface.cpp
@@ -67,7 +67,6 @@ DisplayGLOutputSurface::DisplayGLOutputSurface(
DisplayGLOutputSurface::~DisplayGLOutputSurface()
{
- unbind();
m_vizContextProvider->SetUpdateVSyncParametersCallback(viz::UpdateVSyncParametersCallback());
m_gl->DeleteFramebuffers(1, &m_fboId);
}
diff --git a/src/core/compositor/display_software_output_surface.cpp b/src/core/compositor/display_software_output_surface.cpp
index b811449c9..c4bd6052b 100644
--- a/src/core/compositor/display_software_output_surface.cpp
+++ b/src/core/compositor/display_software_output_surface.cpp
@@ -57,7 +57,6 @@ class DisplaySoftwareOutputSurface::Device final : public viz::SoftwareOutputDev
{
public:
Device();
- ~Device();
// Overridden from viz::SoftwareOutputDevice.
void Resize(const gfx::Size &sizeInPixels, float devicePixelRatio) override;
@@ -83,11 +82,6 @@ DisplaySoftwareOutputSurface::Device::Device()
: Compositor(Type::Software)
{}
-DisplaySoftwareOutputSurface::Device::~Device()
-{
- unbind();
-}
-
void DisplaySoftwareOutputSurface::Device::Resize(const gfx::Size &sizeInPixels, float devicePixelRatio)
{
if (viewport_pixel_size_ == sizeInPixels && m_devicePixelRatio == devicePixelRatio)
diff --git a/src/webenginequick/render_widget_host_view_qt_delegate_quick.cpp b/src/webenginequick/render_widget_host_view_qt_delegate_quick.cpp
index cdc0cf426..7a9fa86b2 100644
--- a/src/webenginequick/render_widget_host_view_qt_delegate_quick.cpp
+++ b/src/webenginequick/render_widget_host_view_qt_delegate_quick.cpp
@@ -69,7 +69,6 @@ RenderWidgetHostViewQtDelegateQuick::RenderWidgetHostViewQtDelegateQuick(RenderW
RenderWidgetHostViewQtDelegateQuick::~RenderWidgetHostViewQtDelegateQuick()
{
- unbind();
QQuickWebEngineViewPrivate::bindViewAndWidget(nullptr, this);
}
diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
index 4fa0667b8..3d4e127dc 100644
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
@@ -64,7 +64,6 @@ public:
bind(client->compositorId());
}
- ~RenderWidgetHostViewQuickItem() { unbind(); }
protected:
bool event(QEvent *event) override