From 056a86ad30c3ec7b2360341824f9d222d54fbfbd Mon Sep 17 00:00:00 2001 From: Victor Brekenfeld Date: Fri, 23 Aug 2019 15:15:52 +0200 Subject: [PATCH] anvil: release old buffers on commit --- anvil/src/shell.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/anvil/src/shell.rs b/anvil/src/shell.rs index 46ccb85..ed13150 100644 --- a/anvil/src/shell.rs +++ b/anvil/src/shell.rs @@ -143,13 +143,17 @@ fn surface_commit(surface: &wl_surface::WlSurface, token: CompositorToken // new contents // TODO: handle hotspot coordinates let data = attributes.user_data.get_mut::().unwrap(); - data.buffer = Some(buffer); + if let Some(old_buffer) = data.buffer.replace(buffer) { + old_buffer.release(); + } data.texture = None; } Some(None) => { // erase the contents let data = attributes.user_data.get_mut::().unwrap(); - data.buffer = None; + if let Some(old_buffer) = data.buffer.take() { + old_buffer.release(); + } data.texture = None; } None => {}