Skip to content

Commit 15c515b

Browse files
author
root
committed
---
yaml --- r: 153552 b: refs/heads/try2 c: c5e0736 h: refs/heads/master v: v3
1 parent 19c1584 commit 15c515b

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
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: 45921648699a42fa1d257f6a54d2dbe9e46b0e20
8+
refs/heads/try2: c5e0736c2434fbed6b7f249b42b336f0e27804a6
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: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -209,20 +209,20 @@ impl<'a> DoubleEndedIterator<char> for Chars<'a> {
209209
/// Use with the `std::iter` module.
210210
#[deriving(Clone)]
211211
pub struct CharOffsets<'a> {
212-
front: uint,
213-
back: uint,
212+
front_offset: uint,
214213
iter: Chars<'a>,
215214
}
216215

217216
impl<'a> Iterator<(uint, char)> for CharOffsets<'a> {
218217
#[inline]
219218
fn next(&mut self) -> Option<(uint, char)> {
219+
let (pre_len, _) = self.iter.iter.size_hint();
220220
match self.iter.next() {
221221
None => None,
222222
Some(ch) => {
223-
let index = self.front;
223+
let index = self.front_offset;
224224
let (len, _) = self.iter.iter.size_hint();
225-
self.front += self.back - self.front - len;
225+
self.front_offset += pre_len - len;
226226
Some((index, ch))
227227
}
228228
}
@@ -241,8 +241,8 @@ impl<'a> DoubleEndedIterator<(uint, char)> for CharOffsets<'a> {
241241
None => None,
242242
Some(ch) => {
243243
let (len, _) = self.iter.iter.size_hint();
244-
self.back -= self.back - self.front - len;
245-
Some((self.back, ch))
244+
let index = self.front_offset + len;
245+
Some((index, ch))
246246
}
247247
}
248248
}
@@ -1680,7 +1680,7 @@ impl<'a> StrSlice<'a> for &'a str {
16801680

16811681
#[inline]
16821682
fn char_indices(&self) -> CharOffsets<'a> {
1683-
CharOffsets{front: 0, back: self.len(), iter: self.chars()}
1683+
CharOffsets{front_offset: 0, iter: self.chars()}
16841684
}
16851685

16861686
#[inline]

0 commit comments

Comments
 (0)