-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
Closures right now are fundamentally broken:
fn main(){
make_window();
gtk::main();
}
fn make_window(){
let mut window = gtk::Window::new(gtk::window_type::TopLevel).unwrap();
let drawing_area = DrawingArea::new().unwrap();
drawing_area.connect(signals::Draw::new(|cr|
drawing_area.get_allocated_area() //`drawing_area` is garbage
));
window.add(drawing_area);
window.show_all();
}
This is because rust only has stack closures for now. When make_window
is finished and it's stack goes out of scope all referenced variables inside the callback become garbage.
I'll be able to fix this when rust-lang/rfcs#114 gets merged.
Metadata
Metadata
Assignees
Labels
No labels