Skip to content

Commit e2af7ec

Browse files
committed
---
yaml --- r: 95455 b: refs/heads/dist-snap c: 87a2d03 h: refs/heads/master i: 95453: a8f9906 95451: 335c562 95447: c79b289 95439: c4887e6 95423: cec3a1f v: v3
1 parent 6290b37 commit e2af7ec

File tree

2 files changed

+7
-20
lines changed

2 files changed

+7
-20
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: c274a6888410ce3e357e014568b43310ed787d36
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: 2fcb53493dc80469acf86797c53dacc331629d50
9+
refs/heads/dist-snap: 87a2d032ff6fe74e97348189f95a3a91fd9e228e
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/src/libstd/str.rs

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -827,17 +827,6 @@ pub fn eq(a: &~str, b: &~str) -> bool {
827827
eq_slice(*a, *b)
828828
}
829829

830-
/*
831-
Section: Searching
832-
*/
833-
834-
// Utility used by various searching functions
835-
fn match_at<'a,'b>(haystack: &'a str, needle: &'b str, at: uint) -> bool {
836-
let mut i = at;
837-
for c in needle.byte_iter() { if haystack[i] != c { return false; } i += 1u; }
838-
return true;
839-
}
840-
841830
/*
842831
Section: Misc
843832
*/
@@ -2018,18 +2007,16 @@ impl<'self> StrSlice<'self> for &'self str {
20182007
}
20192008
}
20202009
2010+
#[inline]
20212011
fn starts_with<'a>(&self, needle: &'a str) -> bool {
2022-
let (self_len, needle_len) = (self.len(), needle.len());
2023-
if needle_len == 0u { true }
2024-
else if needle_len > self_len { false }
2025-
else { match_at(*self, needle, 0u) }
2012+
let n = needle.len();
2013+
self.len() >= n && needle == self.slice_to(n)
20262014
}
20272015
2016+
#[inline]
20282017
fn ends_with(&self, needle: &str) -> bool {
2029-
let (self_len, needle_len) = (self.len(), needle.len());
2030-
if needle_len == 0u { true }
2031-
else if needle_len > self_len { false }
2032-
else { match_at(*self, needle, self_len - needle_len) }
2018+
let (m, n) = (self.len(), needle.len());
2019+
m >= n && needle == self.slice_from(m - n)
20332020
}
20342021
20352022
fn escape_default(&self) -> ~str {

0 commit comments

Comments
 (0)