core: Make TwoWaySearcher reset its prefix memory when shifting by byteset

Closes #16878.
This commit is contained in:
nham 2014-09-02 01:53:12 -04:00
parent 0bdac78da8
commit e9db8adebb
2 changed files with 9 additions and 0 deletions

View File

@ -479,6 +479,9 @@ impl TwoWaySearcher {
((haystack[self.position + needle.len() - 1] & 0x3f)
as uint)) & 1 == 0 {
self.position += needle.len();
if !long_period {
self.memory = 0;
}
continue 'search;
}

View File

@ -26,6 +26,12 @@ fn strslice_issue_16589() {
check_contains_all_substrings("012345678901234567890123456789bcdabcdabcd");
}
#[test]
fn strslice_issue_16878() {
assert!(!"1234567ah012345678901ah".contains("hah"));
assert!(!"00abc01234567890123456789abc".contains("bcabc"));
}
#[test]
fn test_strslice_contains() {