From 3e0fa36886a7fbed31709c7bcc90930356c0afae Mon Sep 17 00:00:00 2001 From: Zach Reizner Date: Wed, 22 May 2019 17:26:53 -0700 Subject: eliminate usage of uninitialized uninitialized is deprecated and considered too dangerous to use for any of the use cases we were using. BUG=None TEST=passes smoke_test Change-Id: I5392cb8ec132f374d9b5590f72eb2cb329a82421 Reviewed-on: https://chromium-review.googlesource.com/1626795 Commit-Ready: Zach Reizner Tested-by: Zach Reizner Tested-by: kokoro Legacy-Commit-Queue: Commit Bot Reviewed-by: Dylan Reid Reviewed-by: Stephen Barber --- gpu_renderer/src/generated/virglrenderer.rs | 2 +- gpu_renderer/src/lib.rs | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'gpu_renderer/src') diff --git a/gpu_renderer/src/generated/virglrenderer.rs b/gpu_renderer/src/generated/virglrenderer.rs index f0ea9eb..eb4d4d6 100644 --- a/gpu_renderer/src/generated/virglrenderer.rs +++ b/gpu_renderer/src/generated/virglrenderer.rs @@ -244,7 +244,7 @@ extern "C" { pub fn virgl_set_debug_callback(cb: virgl_debug_callback_type) -> virgl_debug_callback_type; } #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Default, Debug, Copy, Clone)] pub struct virgl_renderer_resource_info { pub handle: u32, pub virgl_format: u32, diff --git a/gpu_renderer/src/lib.rs b/gpu_renderer/src/lib.rs index 3952cf0..4b8274d 100644 --- a/gpu_renderer/src/lib.rs +++ b/gpu_renderer/src/lib.rs @@ -13,7 +13,7 @@ use std::ffi::CStr; use std::fmt::{self, Display}; use std::fs::File; use std::marker::PhantomData; -use std::mem::{size_of, transmute, uninitialized}; +use std::mem::{size_of, transmute}; use std::ops::Deref; use std::os::raw::{c_char, c_int, c_uint, c_void}; use std::os::unix::io::{FromRawFd, RawFd}; @@ -343,9 +343,8 @@ impl Renderer { } let config_attribs = [EGL_SURFACE_TYPE as i32, -1, EGL_NONE as i32]; - // Safe because these uninitialized variables get initialized by the ChooseConfig function. - let mut egl_config: *mut c_void = unsafe { uninitialized() }; - let mut num_configs = unsafe { uninitialized() }; + let mut egl_config: *mut c_void = null_mut(); + let mut num_configs = 0; // Safe because only a valid, initialized display is used, along with validly sized // pointers to stack variables. let ret = unsafe { @@ -694,9 +693,7 @@ impl Resource { /// Retrieves metadata about this resource. pub fn get_info(&self) -> Result { - // Safe because the resource info is filled in by the virgl call and only returned if it was - // successful. - let mut res_info = unsafe { uninitialized() }; + let mut res_info = Default::default(); let ret = unsafe { virgl_renderer_resource_get_info(self.id as i32, &mut res_info) }; ret_to_res(ret)?; Ok(res_info) -- cgit 1.4.1