Skip to content

Commit 178bc04

Browse files
committed
---
yaml --- r: 50173 b: refs/heads/auto c: 29e8b6e h: refs/heads/master i: 50171: fd30141 v: v3
1 parent 67e7922 commit 178bc04

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: 12df65470fb8c5d57fb4f94d37557daa6282173f
17+
refs/heads/auto: 29e8b6ea9b63c5cc1cd91cc5eb756820f7fe50b7
1818
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167

branches/auto/src/libcore/str.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,22 +1020,21 @@ pub fn each_chari(s: &str, it: &fn(uint, char) -> bool) {
10201020
/// Iterates over the chars in a string in reverse
10211021
#[inline(always)]
10221022
pub fn each_char_reverse(s: &str, it: &fn(char) -> bool) {
1023-
let mut pos = 0;
1024-
let len = s.char_len();
1025-
while pos > 0 {
1026-
let CharRange {ch, next} = char_range_at_reverse(s, pos);
1027-
pos = next;
1028-
if !it(ch) { break; }
1029-
}
1023+
each_chari_reverse(s, |_, c| it(c))
10301024
}
10311025

10321026
// Iterates over the chars in a string in reverse, with indices
10331027
#[inline(always)]
10341028
pub fn each_chari_reverse(s: &str, it: &fn(uint, char) -> bool) {
1029+
let mut pos = s.len();
10351030
let mut ch_pos = s.char_len();
1036-
for s.each_char_reverse |ch| {
1031+
while pos > 0 {
1032+
let CharRange {ch, next} = char_range_at_reverse(s, pos);
1033+
pos = next;
10371034
ch_pos -= 1;
1035+
10381036
if !it(ch_pos, ch) { break; }
1037+
10391038
}
10401039
}
10411040

@@ -3661,10 +3660,10 @@ mod tests {
36613660
fn test_each_char_reverse() {
36623661
let s = ~"ศไทย中华Việt Nam";
36633662
let v = ~['ศ','ไ','ท','ย','中','华','V','i','ệ','t',' ','N','a','m'];
3664-
let mut pos = 0;
3663+
let mut pos = v.len();
36653664
for s.each_char_reverse |ch| {
3665+
pos -= 1;
36663666
fail_unless!(ch == v[pos]);
3667-
pos += 1;
36683667
}
36693668
}
36703669

0 commit comments

Comments
 (0)