AltF02 / AltF02/x11-rs

examples include undefined behavior

Aperta
#180 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
205
Fork
69
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

There are several places in the example code that call `MaybeUninit::uninit().assume_init()`, which is [undefined behavior](https://doc.rust-lang.org/std/mem/union.MaybeUninit.html#method.assume_init).

Newer toolchains (e.g. rust 1.87.0) print a big warning when this code is compiled:

```plaintext
warning: the type `XSetWindowAttributes` does not permit being left uninitialized
--> src/main.rs:25:58
|
25 | let mut attributes: xlib::XSetWindowAttributes = mem::MaybeUninit::uninit().assume_init();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| this code causes undefined behavior when executed
| help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done
|
= note: integers must be initialized
= note: `#[warn(invalid_value)]` on by default
```

Values must be initialized before being accessed; `MaybeUninit` does not excuse the code from that requirement.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.