From 93ca929fb9caf34715012dec608afd42e6ccf1e5 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Date: Wed, 3 Feb 2016 13:31:38 +0100 Subject: [PATCH] Fix destroy listener signal connection Remove it from the list in the callback, not when a new buffer is created later on. Change-Id: I2328edec9728752d18efaecede19eb4527d0f578 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com> --- .../wayland-egl/waylandeglclientbufferintegration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp b/src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp index fc2d145f..2413df91 100644 --- a/src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp +++ b/src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp @@ -127,6 +127,7 @@ public: buffer_destroy_listener *destroy_listener = reinterpret_cast<buffer_destroy_listener *>(listener); WaylandEglClientBufferIntegrationPrivate *self = destroy_listener->d; struct ::wl_resource *buffer = static_cast<struct ::wl_resource *>(data); + wl_list_remove(&listener->link); if (!self->buffers.contains(buffer)) return; @@ -256,7 +257,6 @@ void WaylandEglClientBufferIntegration::initializeBuffer(struct ::wl_resource *b if (!buffer || d->buffers.contains(buffer)) return; - wl_list_remove(&d->destroy_listener.listener.link); wl_signal_add(&buffer->destroy_signal, &d->destroy_listener.listener); } -- GitLab