Skip to content

Commit 0716ce6

Browse files
committed
---
yaml --- r: 212454 b: refs/heads/master c: e87c62f h: refs/heads/master v: v3
1 parent bec246c commit 0716ce6

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: c5d0e2a0733b5271d1044979cf824dccb2a3c3d5
2+
refs/heads/master: e87c62fb12e6b02cfc39fc2a16c315615714757a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: ba0e1cd8147d452c356aacb29fb87568ca26f111
55
refs/heads/try: 1864973ae17213c5a58c4dd3f9af6d1b6c7d2e05

trunk/src/libcollections/string.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -468,24 +468,24 @@ impl String {
468468
#[inline]
469469
#[stable(feature = "rust1", since = "1.0.0")]
470470
pub fn push(&mut self, ch: char) {
471-
if (ch as u32) < 0x80 {
472-
self.vec.push(ch as u8);
473-
return;
474-
}
475-
476-
let cur_len = self.len();
477-
// This may use up to 4 bytes.
478-
self.vec.reserve(4);
471+
match ch.len_utf8() {
472+
1 => self.vec.push(ch as u8),
473+
ch_len => {
474+
let cur_len = self.len();
475+
// This may use up to 4 bytes.
476+
self.vec.reserve(ch_len);
479477

480-
unsafe {
481-
// Attempt to not use an intermediate buffer by just pushing bytes
482-
// directly onto this string.
483-
let slice = slice::from_raw_parts_mut (
484-
self.vec.as_mut_ptr().offset(cur_len as isize),
485-
4
486-
);
487-
let used = ch.encode_utf8(slice).unwrap_or(0);
488-
self.vec.set_len(cur_len + used);
478+
unsafe {
479+
// Attempt to not use an intermediate buffer by just pushing bytes
480+
// directly onto this string.
481+
let slice = slice::from_raw_parts_mut (
482+
self.vec.as_mut_ptr().offset(cur_len as isize),
483+
ch_len
484+
);
485+
let used = ch.encode_utf8(slice).unwrap_or(0);
486+
self.vec.set_len(cur_len + used);
487+
}
488+
}
489489
}
490490
}
491491

0 commit comments

Comments
 (0)