]> git.lizzy.rs Git - rust.git/commitdiff
Merge String::push_with_ascii_fast_path into String::push.
authorSimon Sapin <simon.sapin@exyr.org>
Sat, 20 Dec 2014 17:29:02 +0000 (17:29 +0000)
committerSimon Sapin <simon.sapin@exyr.org>
Sat, 20 Dec 2014 17:36:30 +0000 (17:36 +0000)
src/libcollections/string.rs

index d894f0b58d9bd7a3dd578f924c65fff29d6c711a..678e81d40b4a5cb76881d1265dbcdc198945b656 100644 (file)
@@ -512,24 +512,6 @@ pub fn shrink_to_fit(&mut self) {
     #[inline]
     #[stable = "function just renamed from push_char"]
     pub fn push(&mut self, ch: char) {
-        let cur_len = self.len();
-        // This may use up to 4 bytes.
-        self.vec.reserve(4);
-
-        unsafe {
-            // Attempt to not use an intermediate buffer by just pushing bytes
-            // directly onto this string.
-            let slice = RawSlice {
-                data: self.vec.as_ptr().offset(cur_len as int),
-                len: 4,
-            };
-            let used = ch.encode_utf8(mem::transmute(slice)).unwrap_or(0);
-            self.vec.set_len(cur_len + used);
-        }
-    }
-
-    #[inline]
-    fn push_with_ascii_fast_path(&mut self, ch: char) {
         if (ch as u32) < 0x80 {
             self.vec.push(ch as u8);
             return;
@@ -1455,17 +1437,6 @@ fn bench_push_char_one_byte(b: &mut Bencher) {
         });
     }
 
-    #[bench]
-    fn bench_push_char_one_byte_with_fast_path(b: &mut Bencher) {
-        b.bytes = REPETITIONS;
-        b.iter(|| {
-            let mut r = String::new();
-            for _ in range(0, REPETITIONS) {
-                r.push_with_ascii_fast_path('a')
-            }
-        });
-    }
-
     #[bench]
     fn bench_push_char_two_bytes(b: &mut Bencher) {
         b.bytes = REPETITIONS * 2;
@@ -1477,17 +1448,6 @@ fn bench_push_char_two_bytes(b: &mut Bencher) {
         });
     }
 
-    #[bench]
-    fn bench_push_char_two_bytes_with_slow_path(b: &mut Bencher) {
-        b.bytes = REPETITIONS * 2;
-        b.iter(|| {
-            let mut r = String::new();
-            for _ in range(0, REPETITIONS) {
-                r.push_with_ascii_fast_path('รข')
-            }
-        });
-    }
-
     #[bench]
     fn from_utf8_lossy_100_ascii(b: &mut Bencher) {
         let s = b"Hello there, the quick brown fox jumped over the lazy dog! \