summary refs log tree commit diff
path: root/gpu_renderer
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2019-05-22 17:26:53 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-05-23 07:35:18 -0700
commit3e0fa36886a7fbed31709c7bcc90930356c0afae (patch)
tree26be8e831f38a0b2b2979f4b1442dd907981efb0 /gpu_renderer
parent6b7373af988c457d44d7d82bd7ef3e70968f058c (diff)
downloadcrosvm-3e0fa36886a7fbed31709c7bcc90930356c0afae.tar
crosvm-3e0fa36886a7fbed31709c7bcc90930356c0afae.tar.gz
crosvm-3e0fa36886a7fbed31709c7bcc90930356c0afae.tar.bz2
crosvm-3e0fa36886a7fbed31709c7bcc90930356c0afae.tar.lz
crosvm-3e0fa36886a7fbed31709c7bcc90930356c0afae.tar.xz
crosvm-3e0fa36886a7fbed31709c7bcc90930356c0afae.tar.zst
crosvm-3e0fa36886a7fbed31709c7bcc90930356c0afae.zip
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 <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Diffstat (limited to 'gpu_renderer')
-rw-r--r--gpu_renderer/src/generated/virglrenderer.rs2
-rw-r--r--gpu_renderer/src/lib.rs11
2 files changed, 5 insertions, 8 deletions
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<ResourceInfo> {
-        // 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)