Skip to content

Commit

Permalink
Use mem::MaybeUninit instead of mem::uninitialized() since Rust 1.36
Browse files Browse the repository at this point in the history
  • Loading branch information
rhysd committed Aug 21, 2019
1 parent 61d944c commit 8dc1fd6
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ dirs = "2.0.1"

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["consoleapi", "wincon", "handleapi", "fileapi"] }
rustversion = "0.1"

[features]
default=[]
12 changes: 12 additions & 0 deletions src/win.rs
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,10 @@ impl WinConsoleInfo {
let bg;
let handle = conout()?;
unsafe {
#[rustversion::before(1.36)]
let mut buffer_info = ::std::mem::uninitialized();
#[rustversion::since(1.36)]
let mut buffer_info = ::std::mem::MaybeUninit::uninit().assume_init();
if GetConsoleScreenBufferInfo(*handle, &mut buffer_info) != 0 {
fg = bits_to_color(buffer_info.wAttributes);
bg = bits_to_color(buffer_info.wAttributes >> 4);
Expand Down Expand Up @@ -326,7 +329,10 @@ impl<T: Write + Send> Terminal for WinConsole<T> {
let _unused = self.buf.flush();
let handle = conout()?;
unsafe {
#[rustversion::before(1.36)]
let mut buffer_info = ::std::mem::uninitialized();
#[rustversion::since(1.36)]
let mut buffer_info = ::std::mem::MaybeUninit::uninit().assume_init();
if GetConsoleScreenBufferInfo(*handle, &mut buffer_info) != 0 {
let (x, y) = (
buffer_info.dwCursorPosition.X,
Expand Down Expand Up @@ -356,7 +362,10 @@ impl<T: Write + Send> Terminal for WinConsole<T> {
let _unused = self.buf.flush();
let handle = conout()?;
unsafe {
#[rustversion::before(1.36)]
let mut buffer_info = ::std::mem::uninitialized();
#[rustversion::since(1.36)]
let mut buffer_info = ::std::mem::MaybeUninit::uninit().assume_init();
if GetConsoleScreenBufferInfo(*handle, &mut buffer_info) == 0 {
return Err(io::Error::last_os_error().into());
}
Expand All @@ -382,7 +391,10 @@ impl<T: Write + Send> Terminal for WinConsole<T> {
let _unused = self.buf.flush();
let handle = conout()?;
unsafe {
#[rustversion::before(1.36)]
let mut buffer_info = ::std::mem::uninitialized();
#[rustversion::since(1.36)]
let mut buffer_info = ::std::mem::MaybeUninit::uninit().assume_init();
if GetConsoleScreenBufferInfo(*handle, &mut buffer_info) != 0 {
let COORD { X: x, Y: y } = buffer_info.dwCursorPosition;
if x == 0 {
Expand Down

0 comments on commit 8dc1fd6

Please sign in to comment.