diff options
| author | Jakub Beránek <berykubik@gmail.com> | 2025-05-28 09:29:12 +0200 |
|---|---|---|
| committer | Jakub Beránek <berykubik@gmail.com> | 2025-05-28 09:29:12 +0200 |
| commit | cd4f199db24c5f2f65c752555a39256f3955f68b (patch) | |
| tree | 5c8003bcf2e335a13107aa243cfcf9bf05b45cb7 | |
| parent | 04a67d5a0587ed98632f82c404ae20f9f0a51a1d (diff) | |
| download | rust-cd4f199db24c5f2f65c752555a39256f3955f68b.tar.gz rust-cd4f199db24c5f2f65c752555a39256f3955f68b.zip | |
Revert "increase perf of charsearcher for single ascii characters"
This reverts commit 245bf503e2a948ac98170516d11df632e85a948b.
| -rw-r--r-- | library/core/src/str/iter.rs | 2 | ||||
| -rw-r--r-- | library/core/src/str/pattern.rs | 32 |
2 files changed, 2 insertions, 32 deletions
diff --git a/library/core/src/str/iter.rs b/library/core/src/str/iter.rs index 49c581f352e..425c4eaee28 100644 --- a/library/core/src/str/iter.rs +++ b/library/core/src/str/iter.rs @@ -656,7 +656,7 @@ impl<'a, P: Pattern> SplitInternal<'a, P> { None } - #[inline(always)] + #[inline] fn next(&mut self) -> Option<&'a str> { if self.finished { return None; diff --git a/library/core/src/str/pattern.rs b/library/core/src/str/pattern.rs index e8189a2187b..bcbbb11c83b 100644 --- a/library/core/src/str/pattern.rs +++ b/library/core/src/str/pattern.rs @@ -429,23 +429,8 @@ unsafe impl<'a> Searcher<'a> for CharSearcher<'a> { SearchStep::Done } } - #[inline(always)] + #[inline] fn next_match(&mut self) -> Option<(usize, usize)> { - if self.utf8_size == 1 { - return match self - .haystack - .as_bytes() - .get(self.finger..self.finger_back)? - .iter() - .position(|x| *x == self.utf8_encoded[0]) - { - Some(x) => { - self.finger += x + 1; - Some((self.finger - 1, self.finger)) - } - None => None, - }; - } loop { // get the haystack after the last character found let bytes = self.haystack.as_bytes().get(self.finger..self.finger_back)?; @@ -513,21 +498,6 @@ unsafe impl<'a> ReverseSearcher<'a> for CharSearcher<'a> { } #[inline] fn next_match_back(&mut self) -> Option<(usize, usize)> { - if self.utf8_size == 1 { - return match self - .haystack - .get(self.finger..self.finger_back)? - .as_bytes() - .iter() - .rposition(|&x| x == self.utf8_encoded[0]) - { - Some(x) => { - self.finger_back = self.finger + x; - Some((self.finger_back, self.finger_back + 1)) - } - None => None, - }; - } let haystack = self.haystack.as_bytes(); loop { // get the haystack up to but not including the last character searched |
