From: Tobias Bucher Date: Fri, 24 Jul 2015 20:10:12 +0000 (+0200) Subject: Make `str::as_bytes_mut` private X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=5309fbb6c91b8667a016647484ab2ab73d8bf0dd;p=rust.git Make `str::as_bytes_mut` private --- diff --git a/src/libcollections/str.rs b/src/libcollections/str.rs index d359d7548f3..2d56e6e3c41 100644 --- a/src/libcollections/str.rs +++ b/src/libcollections/str.rs @@ -479,19 +479,6 @@ pub fn as_bytes(&self) -> &[u8] { core_str::StrExt::as_bytes(self) } - /// Converts `self` to a mutable byte slice. - /// - /// # Unsafety - /// - /// The `str` type guarantees that its contents are UTF-8 bytes, which can - /// be violated using this function, leading to memory-unsafeties in other - /// string functions. - #[unstable(feature = "str_as_bytes_mut")] - #[inline(always)] - pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8] { - core_str::StrExt::as_bytes_mut(self) - } - /// Returns a raw pointer to the `&str`'s buffer. /// /// The caller must ensure that the string outlives this pointer, and diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs index 202fc90b40d..3c9338c2cd2 100644 --- a/src/libcore/str/mod.rs +++ b/src/libcore/str/mod.rs @@ -1264,7 +1264,6 @@ fn trim_right_matches<'a, P: Pattern<'a>>(&'a self, pat: P) -> &'a str fn char_at(&self, i: usize) -> char; fn char_at_reverse(&self, i: usize) -> char; fn as_bytes<'a>(&'a self) -> &'a [u8]; - unsafe fn as_bytes_mut<'a>(&'a mut self) -> &'a mut [u8]; fn find<'a, P: Pattern<'a>>(&'a self, pat: P) -> Option; fn rfind<'a, P: Pattern<'a>>(&'a self, pat: P) -> Option where P::Searcher: ReverseSearcher<'a>; @@ -1557,11 +1556,6 @@ fn as_bytes(&self) -> &[u8] { unsafe { mem::transmute(self) } } - #[inline] - unsafe fn as_bytes_mut(&mut self) -> &mut [u8] { - mem::transmute(self) - } - fn find<'a, P: Pattern<'a>>(&'a self, pat: P) -> Option { pat.into_searcher(self).next_match().map(|(i, _)| i) } diff --git a/src/libstd/ascii.rs b/src/libstd/ascii.rs index f003948be7b..ded572e82ff 100644 --- a/src/libstd/ascii.rs +++ b/src/libstd/ascii.rs @@ -14,6 +14,7 @@ use prelude::v1::*; +use mem; use ops::Range; /// Extension methods for ASCII-subset only operations on owned strings @@ -185,12 +186,12 @@ fn eq_ignore_ascii_case(&self, other: &str) -> bool { } fn make_ascii_uppercase(&mut self) { - let me: &mut [u8] = unsafe { self.as_bytes_mut() }; + let me: &mut [u8] = unsafe { mem::transmute(self) }; me.make_ascii_uppercase() } fn make_ascii_lowercase(&mut self) { - let me: &mut [u8] = unsafe { self.as_bytes_mut() }; + let me: &mut [u8] = unsafe { mem::transmute(self) }; me.make_ascii_lowercase() } } diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index b4bbb3f25f7..7baa7558e52 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -235,7 +235,6 @@ #![feature(slice_bytes)] #![feature(slice_patterns)] #![feature(staged_api)] -#![feature(str_as_bytes_mut)] #![feature(str_char)] #![feature(str_internals)] #![feature(unboxed_closures)]