Auto merge of #141678 - Kobzol:revert-141516, r=workingjubilee

Revert "increase perf of charsearcher for single ascii characters"

This reverts commit 245bf503e2 (PR https://github.com/rust-lang/rust/pull/141516).

It caused a large `doc` perf. regression in https://github.com/rust-lang/rust/pull/141605.
This commit is contained in:
bors 2025-05-31 08:11:06 +00:00
commit e0d014a3df
2 changed files with 2 additions and 32 deletions

View file

@ -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;

View file

@ -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