Avoid leaking Windows by storing Weak pointers in EventsLoop

This commit is contained in:
mitchmindtree 2017-03-19 18:19:24 +11:00
parent c6968782b1
commit 4b39f81621
3 changed files with 19 additions and 10 deletions

View file

@ -26,7 +26,8 @@ impl Window2 {
{
let weak_events_loop = ::std::sync::Arc::downgrade(&events_loop);
let window = ::std::sync::Arc::new(try!(Window::new(weak_events_loop, attributes, pl_attribs)));
events_loop.windows.lock().unwrap().push(window.clone());
let weak_window = ::std::sync::Arc::downgrade(&window);
events_loop.windows.lock().unwrap().push(weak_window);
Ok(Window2 { window: window })
}