From 538fc9e73f807de93a4cb748851740b607bd81bf Mon Sep 17 00:00:00 2001 From: "Brian J. Burg" Date: Mon, 22 Oct 2012 11:41:16 -0700 Subject: [PATCH] Fix a range-respecting bug in iter_indivisible_pieces_for_range. --- src/servo/text/text_run.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/servo/text/text_run.rs b/src/servo/text/text_run.rs index 66272000bcc..f655d9625aa 100644 --- a/src/servo/text/text_run.rs +++ b/src/servo/text/text_run.rs @@ -124,8 +124,7 @@ impl TextRun : TextRunMethods { let clump = MutableRange(range.begin(), 0); loop { // find next non-whitespace byte index, then clump all whitespace before it. - if clump.end() == range.end() { break } - match str::find_from(self.text, clump.begin(), |c| !char::is_whitespace(c)) { + match str::find_between(self.text, clump.begin(), range.end(), |c| !char::is_whitespace(c)) { Some(nonws_char_offset) => { clump.extend_to(nonws_char_offset); if !f(clump.as_immutable()) { break } @@ -136,13 +135,13 @@ impl TextRun : TextRunMethods { if clump.end() < range.end() { clump.extend_to(range.end()); f(clump.as_immutable()); + break; } } }; // find next whitespace byte index, then clump all non-whitespace before it. - if clump.end() == range.end() { break } - match str::find_from(self.text, clump.begin(), |c| char::is_whitespace(c)) { + match str::find_between(self.text, clump.begin(), range.end(), |c| char::is_whitespace(c)) { Some(ws_char_offset) => { clump.extend_to(ws_char_offset); if !f(clump.as_immutable()) { break } @@ -153,6 +152,7 @@ impl TextRun : TextRunMethods { if clump.end() < range.end() { clump.extend_to(range.end()); f(clump.as_immutable()); + break; } } }