summaryrefslogtreecommitdiff
path: root/src/sys/sysinfo.rs
diff options
context:
space:
mode:
authorAlan Somers <asomers@gmail.com>2019-08-30 23:10:22 -0600
committerAlan Somers <asomers@gmail.com>2019-09-03 16:25:41 -0600
commit469032433d68841ad098f03aa2b28e81235b8be8 (patch)
treea34108f1688355ebaa6d5eed8a2eecafc5d32dfa /src/sys/sysinfo.rs
parenta4a465d25567f163f9552b977eb4d17435251d41 (diff)
downloadnix-469032433d68841ad098f03aa2b28e81235b8be8.zip
Replace most instances of mem::uninitialized with mem::MaybeUninit
Only two instances remain: * For the deprecated sys::socket::CmsgSpace::new. We should probably just remove that method. * For sys::termios::Termios::default_uninit. This will require some more thought. Fixes #1096
Diffstat (limited to 'src/sys/sysinfo.rs')
-rw-r--r--src/sys/sysinfo.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/sys/sysinfo.rs b/src/sys/sysinfo.rs
index 4c8e3898..9807b444 100644
--- a/src/sys/sysinfo.rs
+++ b/src/sys/sysinfo.rs
@@ -7,6 +7,7 @@ use errno::Errno;
/// System info structure returned by `sysinfo`.
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
+#[repr(transparent)]
pub struct SysInfo(libc::sysinfo);
impl SysInfo {
@@ -66,7 +67,7 @@ impl SysInfo {
///
/// [See `sysinfo(2)`](http://man7.org/linux/man-pages/man2/sysinfo.2.html).
pub fn sysinfo() -> Result<SysInfo> {
- let mut info: libc::sysinfo = unsafe { mem::uninitialized() };
- let res = unsafe { libc::sysinfo(&mut info) };
- Errno::result(res).map(|_| SysInfo(info))
+ let mut info = mem::MaybeUninit::uninit();
+ let res = unsafe { libc::sysinfo(info.as_mut_ptr()) };
+ Errno::result(res).map(|_| unsafe{ SysInfo(info.assume_init()) })
}