Skip to content

Commit 2ee6bec

Browse files
author
root
committed
---
yaml --- r: 124585 b: refs/heads/auto c: c5e0736 h: refs/heads/master i: 124583: e21fc7f v: v3
1 parent df3af86 commit 2ee6bec

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
@@ -13,7 +13,7 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1313
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1414
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1515
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
16-
refs/heads/auto: 45921648699a42fa1d257f6a54d2dbe9e46b0e20
16+
refs/heads/auto: c5e0736c2434fbed6b7f249b42b336f0e27804a6
1717
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1818
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1919
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

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