e_hwc_window_queue: Add missing remove destroy listener in destroy callback 15/278815/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 26 Jul 2022 08:38:25 +0000 (17:38 +0900)
committerJunseok Kim <juns.kim@samsung.com>
Tue, 26 Jul 2022 09:47:15 +0000 (18:47 +0900)
fix remove destroy listener after buffer is freed

Change-Id: Ia029c4491fd32f04e9a98a55687d8476555c0984

src/bin/e_hwc_window_queue.c

index 690f05edc2c85952226cc33fe26b9ea083ef46c1..c1b2007ff06f2e13fffcba18592709492b5a3268 100644 (file)
@@ -1856,6 +1856,12 @@ _e_hwc_widnow_queue_buffer_reference_cb_destroy(struct wl_listener *listener, vo
    buffer_ref = container_of(listener, E_Hwc_Window_Queue_Buffer_Ref, destroy_listener);
    if ((E_Hwc_Window_Queue_Buffer *)data != buffer_ref->buffer) return;
    buffer_ref->buffer = NULL;
+
+   if (buffer_ref->destroy_listener.notify)
+     {
+        wl_list_remove(&buffer_ref->destroy_listener.link);
+        buffer_ref->destroy_listener.notify = NULL;
+     }
 }
 
 EINTERN void