From: Eh2406 Date: Wed, 9 May 2018 17:24:11 +0000 (-0400) Subject: use Box::leak and clean up our string leak X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2^2~42^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=19cb91fc361c37e2086cc51e4ebb412bb8c80c94;p=cargo.git use Box::leak and clean up our string leak --- diff --git a/src/cargo/core/interning.rs b/src/cargo/core/interning.rs index d8c18df2d..10d44a93c 100644 --- a/src/cargo/core/interning.rs +++ b/src/cargo/core/interning.rs @@ -3,23 +3,14 @@ use serde::{Serialize, Serializer}; use std::fmt; use std::sync::RwLock; use std::collections::HashSet; -use std::slice; use std::str; -use std::mem; use std::ptr; use std::cmp::Ordering; use std::ops::Deref; use std::hash::{Hash, Hasher}; pub fn leak(s: String) -> &'static str { - let boxed = s.into_boxed_str(); - let ptr = boxed.as_ptr(); - let len = boxed.len(); - mem::forget(boxed); - unsafe { - let slice = slice::from_raw_parts(ptr, len); - str::from_utf8_unchecked(slice) - } + Box::leak(s.into_boxed_str()) } lazy_static! {