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