From 91ea0c4f12574627dc9a17c7acce1c0258797a36 Mon Sep 17 00:00:00 2001 From: Jan Bujak Date: Sun, 3 May 2015 12:09:40 +0200 Subject: [PATCH] Add #[inline(always)] to str::from_utf8_unchecked Without the inline annotation this: str::from_utf8_unchecked( slice::from_raw_parts( ptr, len ) ) doesn't get inlined which can be pretty brutal performance-wise when used in an inner loop of a low level string manipulation method. --- src/libcore/str/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs index 4d343ea0f1e..6b65d746256 100644 --- a/src/libcore/str/mod.rs +++ b/src/libcore/str/mod.rs @@ -136,6 +136,7 @@ pub fn from_utf8(v: &[u8]) -> Result<&str, Utf8Error> { /// Converts a slice of bytes to a string slice without checking /// that the string contains valid UTF-8. +#[inline(always)] #[stable(feature = "rust1", since = "1.0.0")] pub unsafe fn from_utf8_unchecked<'a>(v: &'a [u8]) -> &'a str { mem::transmute(v)