1*4882a593SmuzhiyunFrom 755b3fa1303dc7212138a9a18ce8ca83f8f0af19 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Jeffy Chen <jeffy.chen@rock-chips.com> 3*4882a593SmuzhiyunDate: Tue, 5 Jul 2022 17:54:47 +0800 4*4882a593SmuzhiyunSubject: [PATCH 03/10] e_pixmap: Fix buffer double-release 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunTested with weston-simple-shm. 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 9*4882a593Smuzhiyun--- 10*4882a593Smuzhiyun src/bin/e_pixmap.c | 6 ++++++ 11*4882a593Smuzhiyun 1 file changed, 6 insertions(+) 12*4882a593Smuzhiyun 13*4882a593Smuzhiyundiff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c 14*4882a593Smuzhiyunindex 2edace94f..ece17fee1 100644 15*4882a593Smuzhiyun--- a/src/bin/e_pixmap.c 16*4882a593Smuzhiyun+++ b/src/bin/e_pixmap.c 17*4882a593Smuzhiyun@@ -205,6 +205,12 @@ _e_pixmap_wayland_image_clear(E_Pixmap *cp) 18*4882a593Smuzhiyun { 19*4882a593Smuzhiyun E_Comp_Wl_Buffer *buffer; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun+ if (cp->held_buffer && cp->held_buffer->busy == 1) 22*4882a593Smuzhiyun+ { 23*4882a593Smuzhiyun+ // about to go to busy 0, so remove from list 24*4882a593Smuzhiyun+ cp->busy_list = eina_list_remove(cp->busy_list, cp->held_buffer); 25*4882a593Smuzhiyun+ } 26*4882a593Smuzhiyun+ 27*4882a593Smuzhiyun EINA_LIST_FREE(cp->busy_list, buffer) 28*4882a593Smuzhiyun { 29*4882a593Smuzhiyun buffer->busy--; 30*4882a593Smuzhiyun-- 31*4882a593Smuzhiyun2.20.1 32*4882a593Smuzhiyun 33