From 6bca42ea439cebfdc98686bed89fbf718b1710ce Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Mon, 13 Apr 2020 11:52:15 +0900 Subject: [PATCH] e_hwc_window: fixed resource leak for new tbm buffer Change-Id: I128aac98f41158e5b574dec98b72e01d98abcf4d --- src/bin/e_hwc_window.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/bin/e_hwc_window.c b/src/bin/e_hwc_window.c index 6262005313..5aba4a5ca4 100644 --- a/src/bin/e_hwc_window.c +++ b/src/bin/e_hwc_window.c @@ -1949,6 +1949,7 @@ _e_hwc_window_client_recover(E_Hwc_Window *hwc_window) E_Comp_Wl_Buffer *comp_wl_buffer; tbm_surface_h tsurface =NULL; E_Client *ec = NULL; + Eina_Bool new_buffer = EINA_FALSE; if (hwc_window->is_deleted) return EINA_FALSE; @@ -1970,6 +1971,7 @@ _e_hwc_window_client_recover(E_Hwc_Window *hwc_window) recover_buffer = e_comp_wl_tbm_buffer_get(tsurface); EINA_SAFETY_ON_NULL_RETURN_VAL(recover_buffer, EINA_FALSE); + new_buffer = EINA_TRUE; } else recover_buffer = comp_wl_buffer; @@ -1981,6 +1983,12 @@ _e_hwc_window_client_recover(E_Hwc_Window *hwc_window) /* force update */ if (ec->comp_data) e_comp_wl_surface_attach(ec, recover_buffer); + else + { + /* to avoid resource leak */ + if (new_buffer) + e_comp_wl_tbm_buffer_destroy(recover_buffer); + } e_hwc_window_buffer_fetch(hwc_window); -- 2.34.1