docs: add safety note
This commit is contained in:
parent
5a84b56025
commit
26c17d5cf9
1 changed files with 12 additions and 0 deletions
12
src/main.rs
12
src/main.rs
|
|
@ -189,6 +189,18 @@ impl State {
|
|||
widget::image::allocate(widget::image::Handle::from_rgba(
|
||||
image.width(),
|
||||
image.height(),
|
||||
// SAFETY: this is a sort of race condition;
|
||||
// will cause panics with large enough images,
|
||||
// when they are edited consecutively.
|
||||
//
|
||||
// this can be reproduced by holding down 'i' with a 10k by 10k px image,
|
||||
// which will invert the colors rapidly and eventually crash the app.
|
||||
//
|
||||
// however, that is not such a problem in this case,
|
||||
// and I don't know a different way of doing this that doesn't copy
|
||||
// (performance loss, which is can be pretty big)
|
||||
// or likely cause flickering instead in such cases
|
||||
// (like using Handle over Allocation to immediately drop the last one)
|
||||
unsafe { std::mem::transmute::<&[u8], &'static [u8]>(image.as_bytes()) },
|
||||
))
|
||||
.map(Message::ImageDisplayReady)
|
||||
|
|
|
|||
Loading…
Reference in a new issue