From: Lzu Tao Date: Fri, 5 Jul 2019 18:59:56 +0000 (+0000) Subject: Remove use of mem::uninitialized in libterm crate X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=42c3d3714508c9ab51e5c83dd78a37dbc5e2890c;p=rust.git Remove use of mem::uninitialized in libterm crate --- diff --git a/src/libterm/win.rs b/src/libterm/win.rs index f5c60ee3522..e5911de8396 100644 --- a/src/libterm/win.rs +++ b/src/libterm/win.rs @@ -2,8 +2,6 @@ // FIXME (#13400): this is only a tiny fraction of the Windows console api -extern crate libc; - use std::io; use std::io::prelude::*; @@ -122,12 +120,17 @@ fn apply(&mut self) { /// Returns `None` whenever the terminal cannot be created for some reason. pub fn new(out: T) -> io::Result> { + use std::mem::MaybeUninit; + let fg; let bg; unsafe { - #[allow(deprecated)] - let mut buffer_info = ::std::mem::uninitialized(); - if GetConsoleScreenBufferInfo(GetStdHandle(-11i32 as DWORD), &mut buffer_info) != 0 { + let mut buffer_info = MaybeUninit::::uninit(); + if GetConsoleScreenBufferInfo( + GetStdHandle(-11i32 as DWORD), + buffer_info.as_mut_ptr() + ) != 0 { + let buffer_info = buffer_info.assume_init() ; fg = bits_to_color(buffer_info.wAttributes); bg = bits_to_color(buffer_info.wAttributes >> 4); } else {