Skip to content

Commit 3871b7c

Browse files
committed
---
yaml --- r: 139262 b: refs/heads/try2 c: 29e8b6e h: refs/heads/master v: v3
1 parent 32a31d3 commit 3871b7c

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
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 12df65470fb8c5d57fb4f94d37557daa6282173f
8+
refs/heads/try2: 29e8b6ea9b63c5cc1cd91cc5eb756820f7fe50b7
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/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)