From 14550015d9c6ee6cb42c01503c00cea893d867a5 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 21 May 2015 15:11:09 +0200 Subject: [PATCH] nodrop: Small improvement of into_inner --- nodrop/src/lib.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/nodrop/src/lib.rs b/nodrop/src/lib.rs index 2de9261..5dfff90 100644 --- a/nodrop/src/lib.rs +++ b/nodrop/src/lib.rs @@ -24,10 +24,12 @@ impl NoDrop { /// Once extracted, the value can of course drop again. #[inline] pub fn into_inner(mut self) -> T { - let inner_ptr = &mut *self; - unsafe { - ptr::read(inner_ptr) - } + let inner = unsafe { + ptr::read(&mut *self) + }; + // skip Drop, so we don't even have to overwrite + mem::forget(self); + inner } }