From 19cb91fc361c37e2086cc51e4ebb412bb8c80c94 Mon Sep 17 00:00:00 2001 From: Eh2406 Date: Wed, 9 May 2018 13:24:11 -0400 Subject: [PATCH] use Box::leak and clean up our string leak --- src/cargo/core/interning.rs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) 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! { -- 2.30.2