From 22ec5f4af7b5a85ad375d672ed727571b49f3cad Mon Sep 17 00:00:00 2001 From: Tobias Bucher Date: Fri, 24 Jul 2015 03:04:55 +0200 Subject: Replace many uses of `mem::transmute` with more specific functions The replacements are functions that usually use a single `mem::transmute` in their body and restrict input and output via more concrete types than `T` and `U`. Worth noting are the `transmute` functions for slices and the `from_utf8*` family for mutable slices. Additionally, `mem::transmute` was often used for casting raw pointers, when you can already cast raw pointers just fine with `as`. --- src/libstd/sync/mpsc/select.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/libstd/sync') diff --git a/src/libstd/sync/mpsc/select.rs b/src/libstd/sync/mpsc/select.rs index 1d31ac165f6..c46e61cf414 100644 --- a/src/libstd/sync/mpsc/select.rs +++ b/src/libstd/sync/mpsc/select.rs @@ -62,7 +62,6 @@ use core::prelude::v1::*; use core::cell::{Cell, UnsafeCell}; use core::marker; -use core::mem; use core::ptr; use core::usize; @@ -281,7 +280,7 @@ impl<'rx, T: Send> Handle<'rx, T> { pub unsafe fn add(&mut self) { if self.added { return } let selector = &mut *self.selector; - let me: *mut Handle<'static, ()> = mem::transmute(&*self); + let me = self as *mut Handle<'rx, T> as *mut Handle<'static, ()>; if selector.head.is_null() { selector.head = me; @@ -302,7 +301,7 @@ impl<'rx, T: Send> Handle<'rx, T> { if !self.added { return } let selector = &mut *self.selector; - let me: *mut Handle<'static, ()> = mem::transmute(&*self); + let me = self as *mut Handle<'rx, T> as *mut Handle<'static, ()>; if self.prev.is_null() { assert_eq!(selector.head, me); -- cgit 1.4.1-3-g733a5