Skip to content
This repository has been archived by the owner on Jun 8, 2021. It is now read-only.

Commit

Permalink
Replace mem::uninitialized calls
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed Jul 14, 2019
1 parent c912a72 commit 4a884f7
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 14 deletions.
9 changes: 5 additions & 4 deletions src/pdf.rs
Expand Up @@ -8,6 +8,7 @@ use std::io;
use std::mem;
use std::ops::Deref;
use std::path::Path;
use std::ptr;

use enums::PdfVersion;
#[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
Expand Down Expand Up @@ -50,11 +51,11 @@ impl PdfSurface {

pub fn get_versions() -> impl Iterator<Item = PdfVersion> {
let vers_slice = unsafe {
let mut vers_ptr: *mut ffi::cairo_pdf_version_t = mem::uninitialized();
let mut num_vers = 0;
ffi::cairo_pdf_get_versions(&mut vers_ptr as _, &mut num_vers as _);
let mut vers_ptr = ptr::null_mut();
let mut num_vers = mem::MaybeUninit::uninit();
ffi::cairo_pdf_get_versions(&mut vers_ptr, num_vers.as_mut_ptr());

std::slice::from_raw_parts(vers_ptr, num_vers as _)
std::slice::from_raw_parts(vers_ptr, num_vers.assume_init() as _)
};
vers_slice.iter().map(|v| PdfVersion::from(*v))
}
Expand Down
9 changes: 5 additions & 4 deletions src/ps.rs
Expand Up @@ -8,6 +8,7 @@ use std::io;
use std::mem;
use std::ops::Deref;
use std::path::Path;
use std::ptr;

use enums::PsLevel;
use ffi;
Expand Down Expand Up @@ -92,11 +93,11 @@ impl PsSurface {

pub fn get_levels() -> impl Iterator<Item = PsLevel> {
let lvls_slice = unsafe {
let mut vers_ptr: *mut ffi::cairo_ps_level_t = mem::uninitialized();
let mut num_vers = 0;
ffi::cairo_ps_get_levels(&mut vers_ptr as _, &mut num_vers as _);
let mut vers_ptr = ptr::null_mut();
let mut num_vers = mem::MaybeUninit::uninit();
ffi::cairo_ps_get_levels(&mut vers_ptr, num_vers.as_mut_ptr());

std::slice::from_raw_parts(vers_ptr, num_vers as _)
std::slice::from_raw_parts(vers_ptr, num_vers.assume_init() as _)
};

lvls_slice.iter().map(|v| PsLevel::from(*v))
Expand Down
2 changes: 1 addition & 1 deletion src/rectangle.rs
Expand Up @@ -19,7 +19,7 @@ pub struct Rectangle {
impl Uninitialized for Rectangle {
#[inline]
unsafe fn uninitialized() -> Self {
mem::uninitialized()
mem::zeroed()
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/rectangle_int.rs
Expand Up @@ -19,7 +19,7 @@ pub struct RectangleInt {
impl Uninitialized for RectangleInt {
#[inline]
unsafe fn uninitialized() -> Self {
mem::uninitialized()
mem::zeroed()
}
}

Expand Down
9 changes: 5 additions & 4 deletions src/svg.rs
Expand Up @@ -8,6 +8,7 @@ use std::io;
use std::mem;
use std::ops::Deref;
use std::path::Path;
use std::ptr;

#[cfg(any(all(feature = "svg", feature = "v1_16"), feature = "dox"))]
use enums::SvgUnit;
Expand Down Expand Up @@ -53,11 +54,11 @@ impl SvgSurface {

pub fn get_versions() -> impl Iterator<Item = SvgVersion> {
let vers_slice = unsafe {
let mut vers_ptr: *mut ffi::cairo_svg_version_t = mem::uninitialized();
let mut num_vers = 0;
ffi::cairo_svg_get_versions(&mut vers_ptr as _, &mut num_vers as _);
let mut vers_ptr = ptr::null_mut();
let mut num_vers = mem::MaybeUninit::uninit();
ffi::cairo_svg_get_versions(&mut vers_ptr, num_vers.as_mut_ptr());

std::slice::from_raw_parts(vers_ptr, num_vers as _)
std::slice::from_raw_parts(vers_ptr, num_vers.assume_init() as _)
};

vers_slice.iter().map(|v| SvgVersion::from(*v))
Expand Down

0 comments on commit 4a884f7

Please sign in to comment.