From bef761796c2ada6344d227142af4a0f40b9760dd Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Tue, 27 Mar 2018 11:09:32 -0500 Subject: xwm: Fix two more icon related memory leaks Hopefully sort the last leaks introduced in commit 6b58ea8c The window could be destroyed before it had a frame but after it had an icon (I could trigger this with firefox), and the window could be assigned an icon twice before it had a frame (I could trigger this with terminology). The latter leak was Reported-by: Scott Moreau Signed-off-by: Derek Foreman Reviewed-by: Pekka Paalanen --- xwayland/window-manager.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c index dad117fa..7b98e140 100644 --- a/xwayland/window-manager.c +++ b/xwayland/window-manager.c @@ -1404,6 +1404,9 @@ weston_wm_handle_icon(struct weston_wm *wm, struct weston_wm_window *window) return; } + if (window->icon_surface) + cairo_surface_destroy(window->icon_surface); + cairo_surface_set_user_data(new_surface, NULL, reply, &handle_icon_surface_destroy); @@ -1506,6 +1509,8 @@ weston_wm_window_destroy(struct weston_wm_window *window) wl_event_source_remove(window->repaint_source); if (window->cairo_surface) cairo_surface_destroy(window->cairo_surface); + if (window->icon_surface) + cairo_surface_destroy(window->icon_surface); if (window->frame_id) { xcb_reparent_window(wm->conn, window->id, wm->wm_window, 0, 0); -- cgit v1.2.1