mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-04-25 06:02:13 +00:00
Merge pull request #1702 from UnHumbleBen/patch-2
Fixes description of Closure lifetime in comments.
This commit is contained in:
commit
0dbf4294c2
@ -72,14 +72,14 @@ fn setup_clock(window: &Window, document: &Document) -> Result<(), JsValue> {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
// The instances of `Closure` that we created will invalidate their
|
// The instance of `Closure` that we created will invalidate its
|
||||||
// corresponding JS callback whenever they're dropped, so if we were to
|
// corresponding JS callback whenever it is dropped, so if we were to
|
||||||
// normally return from `run` then both of our registered closures will
|
// normally return from `setup_clock` then our registered closure will
|
||||||
// raise exceptions when invoked.
|
// raise an exception when invoked.
|
||||||
//
|
//
|
||||||
// Normally we'd store these handles to later get dropped at an appropriate
|
// Normally we'd store the handle to later get dropped at an appropriate
|
||||||
// time but for now we want these to be global handlers so we use the
|
// time but for now we want it to be a global handler so we use the
|
||||||
// `forget` method to drop them without invalidating the closure. Note that
|
// `forget` method to drop it without invalidating the closure. Note that
|
||||||
// this is leaking memory in Rust, so this should be done judiciously!
|
// this is leaking memory in Rust, so this should be done judiciously!
|
||||||
a.forget();
|
a.forget();
|
||||||
|
|
||||||
@ -106,5 +106,7 @@ fn setup_clicker(document: &Document) {
|
|||||||
.dyn_ref::<HtmlElement>()
|
.dyn_ref::<HtmlElement>()
|
||||||
.expect("#green-square be an `HtmlElement`")
|
.expect("#green-square be an `HtmlElement`")
|
||||||
.set_onclick(Some(a.as_ref().unchecked_ref()));
|
.set_onclick(Some(a.as_ref().unchecked_ref()));
|
||||||
|
|
||||||
|
// See comments in `setup_clock` above for why we use `a.forget()`.
|
||||||
a.forget();
|
a.forget();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user