about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2012-10-18 11:04:32 -0700
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2012-10-18 11:04:32 -0700
commitac50046a111a1ef6fb58b7e5f368ff6b9b55f89c (patch)
tree80cf493ed096af2d14a26c2a97eea9b974938c48 /src/libcore
parenta7ecde33238f46ae473ceb63db95068f1ce6cffd (diff)
downloadrust-ac50046a111a1ef6fb58b7e5f368ff6b9b55f89c.tar.gz
rust-ac50046a111a1ef6fb58b7e5f368ff6b9b55f89c.zip
Simplify str::to_managed
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/str.rs5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/libcore/str.rs b/src/libcore/str.rs
index d59f36e0681..d32d35cbe1a 100644
--- a/src/libcore/str.rs
+++ b/src/libcore/str.rs
@@ -2262,9 +2262,8 @@ impl &str: StrSlice {
 
     #[inline]
     pure fn to_managed() -> @str {
-        let v = at_vec::from_fn(self.len() + 1, |i| {
-            if i == self.len() { 0 } else { self[i] }
-        });
+        let bytes = as_bytes_slice(self);
+        let v = at_vec::from_fn(bytes.len(), |i| bytes[i]);
         unsafe { ::cast::transmute(v) }
     }