From 8dc1fd640544833b285a29b95467e37f19af6b98 Mon Sep 17 00:00:00 2001 From: rhysd Date: Wed, 21 Aug 2019 20:28:08 +0900 Subject: [PATCH] Use mem::MaybeUninit instead of mem::uninitialized() since Rust 1.36 --- Cargo.toml | 1 + src/win.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index b0119226..0c557058 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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=[] diff --git a/src/win.rs b/src/win.rs index 8fd7f5ad..c9b17611 100644 --- a/src/win.rs +++ b/src/win.rs @@ -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); @@ -326,7 +329,10 @@ impl Terminal for WinConsole { 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, @@ -356,7 +362,10 @@ impl Terminal for WinConsole { 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()); } @@ -382,7 +391,10 @@ impl Terminal for WinConsole { 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 {